Tiger學習 之 可變引數

2021-08-29 10:46:09 字數 2310 閱讀 9898

可變引數,解決method有不同個數引數的overload問題...

如何建立乙個可變長度的引數,看**:

[quote]

public void vararg(string varone, string vartwo, string...strings ) {}

[/quote]

編譯器會把它解析為"public void vararg(string varone, string vartwo, string strings) {}",將"..."建立成乙個的array。

呼叫很簡單...(零或以上多個引數)

[quote]

vararg("one","tow");[color=blue] //可以不傳引數[/color]

vararg("one","tow","three"); [color=blue]//可以傳入乙個引數[/color]

vararg("one","tow","three",four); [color=blue]//可以傳入多個引數[/color]

[/quote]

當然,也可以傳入乙個陣列作為引數,如:

[quote]

public void vararg(int... i)

}[/quote]

[quote]

//呼叫

int i = ;

new objectb().vararg(i);

[/quote]

輸出[quote]

the i value is: 1

the i value is: 2

the i value is: 3

the i value is: 4

the i value is: 5

the i value is: 6

[/quote]

當然,如果是接受到乙個零長度的list,最好做乙個判斷,可以丟擲illegalargumentexception異常。

[color=blue]but,有些限制:

1.乙個方法只能有乙個可變引數(乙個省略號)

2.省略號只能寫在方法引數列表的最後乙個。[/color]

迭代可變引數list

將vararg當array來使用...如:

[quote]

public void vararg(string...strings )

}[/quote]

輸出[quote]

the vararg value is: one

the vararg value is: two

the vararg value is: three

[/quote]

也可以將可變引數存在變數中...

[quote]

public void vararg(string...strings )

[/quote]

[quote]

public void vararg(object... object)

}[/quote]

//呼叫

[quote]

integer i = ;[color=blue]//只能用integer,如果用int,print不出來具體的值。。。[/color]

string str = ;

objectb b = new objectb();

b.vararg(i);

b.vararg(str);

[/quote]

結果[quote]

//integer型別

the object value is: 1

the object value is: 2

the object value is: 3

//string型別

the object value is: a

the object value is: b

the object value is: c

[/quote]

還有乙個情況出現...例如

[quote]

string str = ;

system.out.printf("the array values are: %s " , str);

[/quote]

輸出是:

[quote]

the array values are: a

[/quote]

因為只會取str的第乙個元素的值...可以這樣寫

[quote]

system.out.printf("the array values are: %s " ,(object)str);

[/quote]

函式之可變引數

可變引數 可有可無的 定義方式 defadd args arguments 引數 print args sum 0if len args 0 for i in args sum i print 累加和是 sum sum else print 沒有元素可計算,sum sum add 1,2,3,4 執...

Python新手學習基礎之函式 可變引數

可變引數 可變引數,顧名思義,它的引數是可變的,比如列表 字典等。如果我們需要函式處理可變數量引數的時候,就可以使用可變引數。我們在檢視很多python原始碼時,經常會看到 某函式 引數1,引數2 這樣的函式定義,這個 引數和 引數就是可變引數,一時會讓人有點費解。其實只要把函式可變引數的定義搞清楚...

Python新手學習基礎之函式 可變引數

可變引數 講好了一顆 那如果函式的最後乙個引數帶有 字首 所有正常引數之外的其他的關鍵字引數都將被放置在乙個字典中傳遞給函式。要好好理解 和 兩種可變引數哦 看個 的例項吧 def print info x,info print x for n in info print n str info n ...