Java的不定長參數和Python的不定長參數對比

來源:互聯網
上載者:User

標籤:不定長參數   可變參數   

一:起因

(0)不定長參數,也叫可變的參數,就是再調用函數之前,並不確定到底需要傳遞多少個參數

(1)Java中的不定長參數用String... args / int... args等三個點來表示;Python中用*args元組來表示 / **args字典(map)來表示 

(2)不定參數有兩個規定:第一,方法的參數列表中最多隻有一個不定長度的參數;第二,就是不定長度的數組的位置必須是最後一個參數。不然不能通過編譯。

二:執行個體對比

(1)Python的不定長參數

第一種方法——以一個*開始的參數,代表一個任意長的元組:

>>> def mul(*arg):...     print arg... >>> mul(1,2,3,4,5,6,7,'hello','panfei')(1, 2, 3, 4, 5, 6, 7, 'hello', 'panfei') #一個元組>>>*********************************

第二種方法——一個以**開始的參數,代表一個字典:

>>> def mul2(**arg):...     print arg... >>> mul2(a=11,b=444,c=888){'a': 11, 'c': 888, 'b': 444} 一個字典>>>*********************************
注釋:兩種參數前者可以直接寫實參,後者寫成名=值的形式!

(2)Java中的不定長參數

package cs.tju.test;public class Test {public static void main(String[] args) {changeArgs("aaa");changeArgs("aaa", "bbb");changeArgs("aaa", "bbb", "ccc");}    /*@function  不定長參數的用法測試     *@data 2015.05.19     *String... 和 String[]意義應該差不多,但是不如String...靈活,他會產生一個動態數組類似於vector或者list,能夠用for訪問     *不定參數有兩個規定:第一,方法的參數列表中最多隻有一個不定長度的參數;     *第二,就是不定長度的數組的位置必須是最後一個參數。不然不能通過編譯。      */public static void changeArgs(String arg, String... zyp) {System.out.println(arg);System.out.println("----------------");for (String s : zyp) {System.out.println(s);}System.out.println("*************-");}}


Java的不定長參數和Python的不定長參數對比

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.