코틀린에서 함수에 디폴트 값(Default Value)을 지정할 수 있습니다. 디폴트 값은 함수를 호출할 때 해당 매개변수에 값을 명시적으로 전달하지 않아도 되게 합니다. 이는 함수를 더 유연하게 사용할 수 있게 하고, 오버로딩의 필요성을 줄여줍니다.
디폴트 값을 가진 함수를 정의하는 방법과 사용하는 방법에 대해 알아보겠습니다.
1. 디폴트 값 지정
디폴트 값을 가진 함수는 함수 정의 시 매개변수에 직접 값을 할당하여 지정할 수 있습니다.
fun greet(name: String, greeting: String = "Hello") {
println("$greeting, $name!")
}
2. 디폴트 값 사용
디폴트 값을 가진 함수를 호출할 때 해당 매개변수에 값을 전달하지 않으면 디폴트 값이 자동으로 사용됩니다.
greet("Alice") // 출력: Hello, Alice!
greet("Bob", "Hi") // 출력: Hi, Bob!
3. 여러 매개변수에 디폴트 값 사용
여러 매개변수에 각각 디폴트 값을 지정할 수 있습니다.
fun printInfo(name: String = "Guest", age: Int = 25, city: String = "Unknown") {
println("Name: $name, Age: $age, City: $city")
}
4. 디폴트 값과 오버로딩
디폴트 값을 가진 함수를 오버로딩할 수 있습니다.
fun greet(name: String, greeting: String = "Hello") {
println("$greeting, $name!")
}
fun greet(name: String, age: Int, greeting: String = "Hello") {
println("$greeting, $name! Age: $age")
}
5. 디폴트 값의 위치
디폴트 값을 갖는 매개변수는 함수 시그니처의 끝에 위치해야 합니다. 즉, 매개변수 중간에 디폴트 값을 갖는 매개변수를 두는 것은 허용되지 않습니다.
// 올바른 예
fun example1(a: Int, b: Int = 0, c: Int = 1) { /* ... */ }
// 오류: 디폴트 값을 갖는 매개변수는 함수 시그니처의 끝에 위치해야 함
fun example2(a: Int = 0, b: Int, c: Int = 1) { /* ... */ }
디폴트 값을 갖는 매개변수를 사용하면 함수 호출 시 명시적인 인자 전달을 생략하고 간결한 코드를 작성할 수 있습니다. 디폴트 값은 함수의 유연성을 높이고 코드의 가독성을 향상시키는 데에 도움을 줍니다.
With ChatGPT
'Kotlin > 포스팅' 카테고리의 다른 글
코틀린 함수의 영역 (0) | 2023.12.23 |
---|---|
코틀린 가변인자 vararg 키워드 (0) | 2023.12.17 |
코틀린 오버로딩 (0) | 2023.12.17 |
코틀린 위치 기반 인자와 이름 붙은 인자 (0) | 2023.12.17 |
코틀린 확장 함수 (0) | 2023.12.17 |