이름 붙은 인자는 디폴트 인자(default argument)와 결합하면 더 유용하다. 디폴트 인자란 파라미터의 디폴트 값을 함수 정의에서 지정하는 것을 말한다.
NamedAndDefaultArgs/Color2.kt
package color2
import atomictest.eq
fun color(
red: Int = 0,
green: Int = 0,
blue: Int = 0,
) = "($red, $green, $blue)"
fun main() {
color(139) eq "(139, 0, 0)"
color(blue = 139) eq "(0, 0, 139)"
color(255, 165) eq "(255, 165, 0)"
color(red = 128, blue = 128) eq
"(128, 0, 128)"
}
함수 호출 시 값을 지정하지 않은 인자는 자동으로 디폴트 값으로 지정된다. 따라서 디폴트 값과 다른 인자만 지정하면 된다. 인자 목록이 긴 경우, 디폴트 인자를 생략하면 코드를 짧게 작성할 수 있으므로 코드 작성이 쉬워진다. 더 중요한 건 코드의 가독성도 좋아진다는 점이다.