作為"通配符”,import導(dǎo)入包的所有成員,類似Java中的*。如import scala.math._
_*
作為一個(gè)整體,告訴編譯器你希望將某個(gè)參數(shù)當(dāng)作參數(shù)序列處理!例如val s = sum(1 to 5:_*)就是將1 to 5當(dāng)作參數(shù)序列處理。占位符,指代一個(gè)集合中的每個(gè)元素。比如對(duì)collection或sequence調(diào)用方法map、filter、sortWith、foreach等等表示對(duì)每一個(gè)元素進(jìn)行處理。例如我們要在一個(gè)Array a中篩出偶數(shù),并乘以2,可以用以下辦法:
a.filter(%2==0).map(2*)
List(1,2,3).foreach(println(_))在元組中,可以用方法_1, _2, _3訪問組員。如a._2。其中句點(diǎn)可以用空格替代。
("a","b","c")._3使用模式匹配可以用來獲取元組的組員,n來取得第n個(gè)元素。
例如:
val t = ("a","b","c")
val (first, second, third) = t
但如果不是所有的部件都需要,那么可以在不需要的部件位置上使用。
比如上一例中val (first, second, _) = t下劃線代表的是某一類型的默認(rèn)值,對(duì)變量進(jìn)行默認(rèn)初始化。
對(duì)于Int來說,var i:Int=,i是0。
對(duì)于Double來說,它是0.0
對(duì)于引用類型,它是null。
List(1,2,3).foreach(println(_))類的setter方法,比如類A中定義了var f,則相當(dāng)于定義了setter方法 f_=。也可以自己定義f_= 方法來完成更多的事情,比如設(shè)置前作一些判斷或預(yù)處理之類的操作
Scala中的下劃線(underscore)到底有多少種應(yīng)用場(chǎng)景?
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 下劃線這個(gè)符號(hào)幾乎貫穿了任何一本Scala編程書籍,并且在不同的場(chǎng)景下具有不同的含義,繞暈了不少初學(xué)者。正因如此,...
- Scala的集合類可以從三個(gè)維度進(jìn)行切分: 可變與不可變集合(Immutable and mutable coll...
- 數(shù)組是一種可變的、可索引的數(shù)據(jù)集合。在Scala中用Array[T]的形式來表示Java中的數(shù)組形式 T[]。 v...
- //Clojure入門教程: Clojure – Functional Programming for the J...
- 前些日子,加了小學(xué)老師的微信號(hào),和她講了許多第一任班主任判過的冤假錯(cuò)案。 其中一起我印象特別深刻,那時(shí)我和一個(gè)班主...