[코틀린인액션] 함수

코틀린에서 함수 선언 및 반환 타입의 지정

fun main(args: Array<String>) {
    val val1 = 10
    val val2 = 20

    println("Max value is ${max(val1, val2)}")
}

fun max(a: Int, b: Int): Int {
    return if (a > b) a else b
}
  • 둘중 큰값이 뭔지 구하는 함수이다.
  1. 함수의 선언은 fun 으로
  1. 함수 이름
    1. max
  1. 코틀린에서의 IF 의 처리
    1. if 가 으로 취급된다
    1. if 를 통해 삼항연산자와 같은 효과 가능

식이 본문인 함수

fun max(a: Int, b: Int): Int = if (a > b) a else b
  • max 함수가 if 식을 바로 반환이 가능함
  • 중괄호 , return 키워드가 필요가 없다.
  • 함수의 반환 타입은 = 뒤에 오는 식을 통해 결정된다.

반환 타입의 생략과 타입의 추론

  • 타입 추론을 통해 함수의 반환 타입을 생략이 가능하다.
  • 함수가 식을 바로 반환하는 경우에, 컴파일러가 자동으로 식의 결과 타입을 함수의 반환 타입으로 결정한다.
fun max(a: Int, b: Int) = if (a > b) a else b

주의

  1. 블록이 본문인 함수
    1. 이 경우 함수가 값을 반환해야한다면, 반환 타입을 명시적으로 지정해야한다.
    1. return 문을 사용해 반환 값을 지정해야하는 것이다.
  1. 함수 설계 의도
    1. 코틀린은 긴 함수에서 여러가지 return 이 사용되는 경우
    1. 반환 타입을 명시적으로 선언하도록 설계되어 있다.
    1. 함수가 반환하는 타입과 위치를 명확하게 파악하기 위함이다.

Uploaded by N2T