[Kotlin Koans] Named arguments/Default arguments

바이너리·2022년 5월 17일
0
post-thumbnail

굉장히 오랜만의 글ㅠ 취업해도 블로그로 개인 공부는 꾸준히 하려는 다짐이었는데 지키지 못했다
Kotlin Koans 하면서 가볍게 다시 시작해봐야지... 🥹

https://kotlinlang.org/docs/koans.html
kotlin koans란 코틀린 문법을 연습해볼 수 있는 예제 모음으로, 온라인에서도 풀어볼 수 있고 intellij plugin으로도 가능하다 ㅎㅎ

Introduction

Simple Functions

fun start(): String = "OK"

코틀린은 함수를 의미하는 키워드로 fun을 사용한다. 반환 타입은 함수 시그니처 마지막에 : String(콜론)과 같은 형식으로 명시해준다. 함수 본문이 한 줄일경우 위처럼 축약해줄 수 있고, 여러줄일 경우는 중괄호를 써주면 된다.

Named arguments

fun joinOptions(options: Collection<String>) =
    options.joinToString(
        separator = ", ",
        prefix = "[",
        postfix = "]"
    )

함수를 호출할 때, 인자 값와 함께 매치될 인자 이름을 써줄 수 있다. 이를 named arguments라고 한다. 이 방식은 인자의 순서가 바뀌어도 문제가 없기 때문에 호출하는 쪽에서는 함수 인자 순서에 완전히 독립할 수 있다는 장점이 있다.

Default 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로 지정한 인자가 없다면 초기화해주는 코드가 추가된다.

profile
01101001011010100110100101101110

0개의 댓글