함수의 인자가 단 하나뿐인 경우에는 인자 -> 부분을 생략하고 it이라는 이름으로 인자를 가리킬 수 있다. 여기서는 인자를 함수 본문에서 사용하지 않기 때문에 코드가 { Donut() }으로 줄어든다. 방금 설명한 내용을 명확히 이해할 수 없어도 걱정하지 말라. 이에 관해서는 다음 장에서 더 자세히 설명한다.

    이 예제에서 quantity 인자는 기본 값으로 1을 받는다는 점에 유의하라. 이로 인해 수량을 명시하지 않고 다음과 같은 구문을 사용해 buyDonuts 함수를 호출할 수도 있다.

    buyDonuts(creditCard = cc)

    자바에서는 다음과 같이 기본 인자를 제공하는 구현을 사용해 메서드를 오버로드(overload)해야 한다.

    public static Purchase buyDonuts(CreditCard creditCard) {
        return buyDonuts(1, creditCard);
    }
    public static Purchase buyDonuts(int quantity, CreditCard creditCard) {
        return new Purchase(Collections.nCopies(quantity, new Donut()), new Payment(creditCard, Donut.price * quantity));
    }
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.