자바 개발자를 위한 코틀린 입문 에 강의 내용을 정리한 내용이다.
코틀린에서 함수를 다루는 방법에 대해서 설명한다.
함수 선언 문법
if - else 문은 expression 이기때문에 아래와 같이 함수 선언이 가능하다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| fun max(a: Int, b: Int): Int { return if (a > b) { return a } else { return b } }
fun max2(a: Int, b: Int): Int = if (a > b) { a } else { b }
fun max3(a: Int, b: Int) = if (a > b) a else b
|
default parameter
JAVA에서 Overloading을 하여 parameter 값을 넣어줘야하는데, parameter 값이 없을떄는 default parameter 값이 적용된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| fun main() { repeat("Hello World") repeat("Hello World", 2) repeat("Hello World", 6, false) }
fun repeat( str: String, num: Int = 3, useNewLine: Boolean = true ) { for (i in 1..num) { if (useNewLine) { println(str) } else { print(str) } } }
|
named argument
parameter를 통해서 직접 지정하고, 지정되지 않는 parameter는 기본값을 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| fun main() { repeat("Hello World", useNewLine = false) }
fun repeat( str: String, num: Int = 3, useNewLine: Boolean = true ) { for (i in 1..num) { if (useNewLine) { println(str) } else { print(str) } } }
|
같은 타입의 여러 파라미터 받기 (가변인자)
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| package basic
fun main() { printAll("A", "B", "C") val array = arrayOf("A", "B", "C") printAll(*array) }
fun printAll(vararg strings: String) { for (str in strings) { println(str) } }
|
소스코드
참조