在我們定義method時,若需要有外來的數值input進來運算,就會定義parameter:
int sum (int num01, int num02){
return num01 + num02;
}
上面的範例可以傳入兩個int,執行後會返回一個相加後的int。
但如果我們不一定只有2個int要做加總該怎麼辦呢?難道要分別定義可以傳入3個int引數、傳入4個int引數、傳入5個int引數......這樣嗎?
int sum (int num01, int num02, int num03){
return num01 + num02 + num03;
}
int sum (int num01, int num02, int num03, int num04){
return num01 + num02 + num03 + num04;
}
int sum (int num01, int num02, int num03, int num04, int num05){
return num01 + num02 + num03 + num04 + num05;
}
......永無止境......
為了解決這樣的需求,Java提供了不定長度引數(Variable-length Argument)這樣的用法:
int sum (int... nums){
int result = 0;
for(int num : nums){
result += num;
}
return result;
}
只要定義了不定程度引數int… nums,代表我們可以在叫用這個方法時,放入任意數量的int型態引數。從以上的操作可以看出,其實不定長度引數本質就是一個陣列。
不定長度引數還有2個需要注意的規則:
其實以上這兩個規則都有其理由,大家可以想想看,若不定長度引數有兩個時,會發生甚麼事情呢?抑或當仍有其他引數要傳入時,不定長度引數不放在最後面會發生甚麼事情?