C 中的可變參數函式
在 C 中,最常被使用到的可變參數函式就是有名的 printf
和 scanf
。printf
可以接受數個長度不一的參數,並且在經過解析後,以第一個參數所指定的形式印出來。而 scanf
則是依照第一個參數指定的內容將變數設給其後長度不一的參數。像是底下的例子:
printf("%-10d%5d", num1, num2);
Java 的新特性
早期 Java 並沒有這種可變長變的參數特性,其中因為可變長度的參數容易造成多型和方法覆載的問題,因此有很多人不建議 Java 加入此一特性。不過我想這次 Java 既然準備要加入格式化輸入輸出的部份,以補足在字串處理上的不足,並且讓 C 程式設計師能夠對 Java 更上手。
public int sum(int... input) {
int result = 0;
for (int i : input) {
result += i;
}
return result;
}
sum(1, 2, 3, 4, 5); // Output: 15
sum(); // Output: 0