fun

  • 코틀린에서는 함수 선언을 위해 fun 키워드를 사용함.
  • 함수 매개변수는 괄호 안에 작성 ().
  • 각 매개변수에는 유형이 있어야 하며, 여러 매개변수는 쉼표로 구분
  • 반환 유형은 함수의 괄호 뒤에 콜론':'으로 구분
  • 함수의 본문은 중괄호 안에 작성 {}
  • 키워드 return는 함수에서 무언가를 종료하거나 반환하는 데 사용
fun sum(x: Int, y: Int): Int {
    return x + y
}

fun main() {
    println(sum(1, 2))
    // 3
}

 

* void 함수와 같이 return 값을 반환하지 않아도 된다.

Named arguments

간결한 코드의 경우 함수를 호출할 때 매개변수 이름을 포함할 필요가 없음. 그러나 매개변수 이름을 포함하면 코드를 읽기가 더 쉬워짐. 이를 Named arguments 사용이라고 함 .

fun printMessageWithPrefix(message: String, prefix: String) {
    println("[$prefix] $message")
}

fun main() {
    // Uses named arguments with swapped parameter order
    printMessageWithPrefix(prefix = "Log", message = "Hello")
    // [Log] Hello
}

 

Default parameter values

  • 함수 매개변수에 대한 기본값을 정의할 수 있다.
  • 기본값이 있는 매개변수는 함수를 호출할 때 생략할 수 있다.
  • 기본값을 선언하려면 =유형 뒤에 할당 연산자를 사용
fun printMessageWithPrefix(message: String, prefix: String = "Info") {
    println("[$prefix] $message")
}

fun main() {
    // Function called with both parameters
    printMessageWithPrefix("Hello", "Log") 
    // [Log] Hello
    
    // Function called only with message parameter
    printMessageWithPrefix("Hello")        
    // [Info] Hello
    
    printMessageWithPrefix(prefix = "Log", message = "Hello")
    // [Log] Hello
}

 

Functions without return

  • 함수가 유용한 값을 반환하지 않으면 반환 유형은 Unit 이다. 
  • Unit는 하나의 값만 있는 유형이다
  • Unit 는 함수 본문에서 명시적으로 반환되는 것을 선언할 필요가 없다
    *즉, 키워드를 사용하거나 반환 유형을 선언할 필요가 없다 (return.)
fun printMessage(message: String) {
    println(message)
    // `return Unit` or `return` is optional
}

fun main() {
    printMessage("Hello")
    // Hello
}