作為"通配符”,import導入包的所有成員,類似Java中的*。如import scala.math._
_*作為一個整體,告訴編譯器你希望將某個參數當作參數序列處理!例如val s = sum(1 to 5:_*)就是將1 to 5當作參數序列處理。占位符,指代一個集合中的每個元素。比如對collection或sequence調用方法map、filter、sortWith、foreach等等表示對每一個元素進行處理。例如我們要在一個Array a中篩出偶數,并乘以2,可以用以下辦法:
a.filter(%2==0).map(2*)
List(1,2,3).foreach(println(_))在元組中,可以用方法_1, _2, _3訪問組員。如a._2。其中句點可以用空格替代。
("a","b","c")._3使用模式匹配可以用來獲取元組的組員,n來取得第n個元素。
例如:
val t = ("a","b","c")
val (first, second, third) = t
但如果不是所有的部件都需要,那么可以在不需要的部件位置上使用。
比如上一例中val (first, second, _) = t下劃線代表的是某一類型的默認值,對變量進行默認初始化。
對于Int來說,var i:Int=,i是0。
對于Double來說,它是0.0
對于引用類型,它是null。
List(1,2,3).foreach(println(_))類的setter方法,比如類A中定義了var f,則相當于定義了setter方法 f_=。也可以自己定義f_= 方法來完成更多的事情,比如設置前作一些判斷或預處理之類的操作
Scala中的下劃線(underscore)到底有多少種應用場景?
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
相關閱讀更多精彩內容
- 下劃線這個符號幾乎貫穿了任何一本Scala編程書籍,并且在不同的場景下具有不同的含義,繞暈了不少初學者。正因如此,...
- //Clojure入門教程: Clojure – Functional Programming for the J...