굉장히 오랜만의 글ㅠ 취업해도 블로그로 개인 공부는 꾸준히 하려는 다짐이었는데 지키지 못했다
Kotlin Koans 하면서 가볍게 다시 시작해봐야지... 🥹
https://kotlinlang.org/docs/koans.html
kotlin koans란 코틀린 문법을 연습해볼 수 있는 예제 모음으로, 온라인에서도 풀어볼 수 있고 intellij plugin으로도 가능하다 ㅎㅎ
fun start(): String = "OK"
코틀린은 함수를 의미하는 키워드로 fun
을 사용한다. 반환 타입은 함수 시그니처 마지막에 : String
(콜론)과 같은 형식으로 명시해준다. 함수 본문이 한 줄일경우 위처럼 축약해줄 수 있고, 여러줄일 경우는 중괄호를 써주면 된다.
fun joinOptions(options: Collection<String>) =
options.joinToString(
separator = ", ",
prefix = "[",
postfix = "]"
)
함수를 호출할 때, 인자 값와 함께 매치될 인자 이름을 써줄 수 있다. 이를 named arguments라고 한다. 이 방식은 인자의 순서가 바뀌어도 문제가 없기 때문에 호출하는 쪽에서는 함수 인자 순서에 완전히 독립할 수 있다는 장점이 있다.
fun foo(name: String, number: Int = 42, toUpperCase: Boolean = false) =
(if (toUpperCase) name.uppercase() else name) + number
fun useFoo() = listOf(
foo("a"),
foo("b", number = 1),
foo("c", toUpperCase = true),
foo(name = "d", number = 2, toUpperCase = true)
)
함수를 정의할 때 default arguments을 사용하면 constructor가 호출되면서 해당 값이 없어도 미리 정의된 값으로 초기화가 된다. 이 경우 컴파일 했을 때 생성자 내부에서 default argument로 지정한 인자가 없다면 초기화해주는 코드가 추가된다.