不定長引數方法

2021-08-28 01:58:38 字數 1210 閱讀 3282

package com;

public class unfixedparameter );

testone(new string);

testtwo();

testtwo("a","b","c");

}public static void testone(string args)

}public static void testtwo(string... args)

}}

我們可以看出無論用string方式還是string...方式其實本質都是傳入的乙個字串陣列。這裡還可以看出這種不定長引數方法的傳參個數為》=0個。如果你希望必須傳入乙個或多個引數,那麼可以在其前面新增引數(不能在後面新增,否則編譯不通過),例如:

public static void test(int i,string par,string... args){}

不定長引數方法方法過載:

package com;

public class unfixedparameter );

test(new string);

test();

test("a","b","c");

}public static void test(string... args)

}public static void test(string par,string... args)

}}

你一定會發現test("a","b","c")編譯不通過。因為編譯器無法確定你呼叫的是哪個方法。這裡我故意給第乙個方法傳入的是string型別,上面我已經說過string和string...方式本質都是傳入乙個字串陣列,所以寫成同名方法的話不叫方法過載,會導致編譯報錯。這裡test(new string{})和test(new string)一定呼叫的是第乙個方法,而test("a","b","c")無法確定呼叫的是哪個方法。因為你可以把第二個方法當成是傳入乙個字串和乙個字串陣列,也可以當成傳入》=1個字串。

總結:1.兩種方式本質都是傳入的字串陣列,所以不能同時出現,否則編譯無法通過

2.string...引數必須放在最後面,否則編譯無法通過

3.第一種方式(即string方式)可以使用方法過載,第二種方式(即string...方式)使用方法過載時,呼叫方法時會編譯不通過(引數個數為0個的時候除外)

不定長引數

不定長引數 在定義函式時,不確定接收引數的個數,此時可以使用不定長引數 不定長引數的表現形式 1.args 表示在呼叫函式時,專門來負責接收不確定個數的位置引數的。2.kwargs 表示在呼叫函式時,專門來負責接收不確定個數的關鍵字引數的。當呼叫函式時,會把所有的關鍵字引數打包到乙個字典裡面,然後把...

Python不定長引數

記錄了python函式的不定長引數,用 來接收不定長的資料。在定義函式時,可以在形參前邊加上乙個 這樣這個形參將會獲取到所有的實參,它將會將所有的實參儲存到乙個元組中 a會接受所有的位置實參,並且會將這些實參統一儲存到乙個元組中 裝包 fn3函式的使用 形參可以接收其他的關鍵字引數,它會將這些引數統...

不定長引數 python

如果向乙個函式傳遞的引數的數量每次都不同,想要讓函式去做每次相加或者其他的事的時候,可以用 變數名 傳遞不定長引數,傳進去以後的變數會變成乙個元組def sum a result 0print type a for i in a result i return result result sum 1...