더북(TheBook)

함수의 인자가 단 하나뿐인 경우에는 인자 -> 부분을 생략하고 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));
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.