新聞中心
Scala允許你指明函數(shù)的***一個(gè)參數(shù)可以是重復(fù)的。這可以允許客戶向函數(shù)傳入可變長(zhǎng)度參數(shù)列表。想要標(biāo)注一個(gè)重復(fù)參數(shù),在參數(shù)的類型之后放一個(gè)星號(hào)。例如:

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),霞山企業(yè)網(wǎng)站建設(shè),霞山品牌網(wǎng)站建設(shè),網(wǎng)站定制,霞山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,霞山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
- scala> def echo(args: String*) =
- for (arg < - args) println(arg)
- echo: (String*)Unit
編輯推薦:Scala編程語言專題
這樣定義,echo可以被零個(gè)至多個(gè)String參數(shù)調(diào)用:
- scala> echo()
- scala> echo("one")
- one
- scala> echo("hello", "world!")
- hello
- world!
函數(shù)內(nèi)部,重復(fù)參數(shù)的類型是聲明參數(shù)類型的數(shù)組。因此,echo函數(shù)里被聲明為類型“String*”的args的類型實(shí)際上是Array[String]。然而,如果你有一個(gè)合適類型的數(shù)組,并嘗試把它當(dāng)作重復(fù)參數(shù)傳入,你會(huì)得到一個(gè)編譯器錯(cuò)誤:
- scala> val arr = Array("What's", "up", "doc?")
- arr: Array[java.lang.String] = Array(What's, up, doc?)
- scala> echo(arr)
- < console>:7: error: type mismatch;
- found : Array[java.lang.String]
- required: String
- echo(arr)
- ?
要實(shí)現(xiàn)這個(gè)做法,你需要在數(shù)組參數(shù)后添加一個(gè)冒號(hào)和一個(gè)_*符號(hào),像這樣:
- scala> echo(arr: _*)
- What's
- up
- doc?
這個(gè)標(biāo)注告訴編譯器把a(bǔ)rr的每個(gè)元素當(dāng)作參數(shù),而不是當(dāng)作單一的參數(shù)傳給echo。
【相關(guān)閱讀】
- 學(xué)習(xí)Scala的閉包
- Scala的偏應(yīng)用函數(shù)
- Scala:函數(shù)文本的短格式和占位符語法
- 介紹Scala的***類函數(shù)
- Scala的本地函數(shù):將私有方法轉(zhuǎn)換為本地方法
當(dāng)前題目:Scala允許的重復(fù)參數(shù)
地址分享:http://www.dlmjj.cn/article/dhjsepg.html


咨詢
建站咨詢
