이름 붙은 인자는 디폴트 인자(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)"
    }

    함수 호출 시 값을 지정하지 않은 인자는 자동으로 디폴트 값으로 지정된다. 따라서 디폴트 값과 다른 인자만 지정하면 된다. 인자 목록이 긴 경우, 디폴트 인자를 생략하면 코드를 짧게 작성할 수 있으므로 코드 작성이 쉬워진다. 더 중요한 건 코드의 가독성도 좋아진다는 점이다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.