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

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


咨詢
建站咨詢
