fun
키워드를 사용해서 함수를 선언한다.name: type
형태로 정의하며, 반드시 type을 명시해야 한다.fun double(x: Int): Int {
return 2 * x
}
named arguments
를 사용해야 한다.fun foo(bar: Int = 10,
baz: Int,
) { /*...*/ }
foo(baz = 1) // bar은 자동으로 0으로 assign
값을 return하지 않는 함수를 Unit-returning functions
라고 한다.
Unit
이라는 type declaration을 사용하지 않아도 된다.return;
을 하는 것처럼 명시적으로 return 하고싶다면 return Unit
혹은 return
이라고 적어줄 수 있는데, 적지 않아도 문제는 없다.fun printHello(name: String?): Unit {
if (name != null)
println("Hello $name")
else
println("Hi there!")
// `return Unit` or `return` is optional
}
fun printHello(name: String?) { } // 함수 리턴타입 Unit도 생략가능
함수가 single expression만을 return한다면, 중괄호를 생략해도 되며, 함수 body는 =
로 정의할 수 있다.
fun double(x: Int): Int = x * 2
fun double(x: Int) = x * 2