[Kotlin] fun 함수 사용하기 (중괄호 생략,return생략) 본문이함수,식이본문

1. fun 함수 사용하기

 

 

==>  결과를 반환하는 함수의 경우 반환 값의 타입은 파라미터 목록 뒤에 추가한다

 

fun main(args: Array<String>) {
    println("Hello World!")


    fun max(a:Int,b:Int):Int{
        // max 함수이름 = 함수명
        // (a:Int, b:Int) == 파라미터 , a = 파라미터명 , Int = > 파라미터 타입
        //  :Int => 반환타입 fun 함수 사용 하면 매개변수를 받고 값을 반환해줘여함.

        return if (a > b) a else b
    }

    println(max(1,2))




}

 

 

println(max(1,2))

 

값을 실행해보게 되면 결과값은 

 

1 > 2 작기때문에 2값이 반환

 

 

 

2. 1번보다 더 간결하게 사용하기. 중괄호 {} 없애기 (return 생략가능)

    fun max1(a:Int,b:Int):Int = if(a>b) a else b

    
    // 아래에 기존방식보다 훨씬 편리하다.
    
  /*  fun max(a:Int,b:Int):Int{      
        // max 함수이름 = 함수명
        // (a:Int, b:Int) == 파라미터 , a = 파라미터명 , Int = > 파라미터 타입
        //  :Int => 반환타입 fun 함수 사용 하면 매개변수를 받고 값을 반환해줘여함.

        return if (a > b) a else b
    }*/

    println(max1(1,2))

}

 

값을 출력해보게되면 똑같이 2가 출력된다.

 

3. return 생략 하기 중요

 

코틀린은 정적타입 지정언어이기에 모든 변수는 모든 식에는 타입이 있고

모든 함수는 반환 타입이 정해져야하는데

 

 

식이 본문인 함수의경우 2번(식이 본문인 함수 ) 1번(블록이 본문인 함수 ) 인데

식이 본문인 함수의 경우 사용자가 반환값을 적지 않아도 컴파일러가 함수 본문식을 분석해 

결과 타입을 함수 반환타입으로 자동 변환해준다.