Java 1.5 特性 : Varargs

C 中的可變參數函式

在 C 中,最常被使用到的可變參數函式就是有名的 printfscanfprintf 可以接受數個長度不一的參數,並且在經過解析後,以第一個參數所指定的形式印出來。而 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

seventeen + 9 =

返回頂端