함수의 인자가 단 하나뿐인 경우에는 인자 -> 부분을 생략하고 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)); }