作为"通配符”,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)到底有多少种应用场景?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 下划线这个符号几乎贯穿了任何一本Scala编程书籍,并且在不同的场景下具有不同的含义,绕晕了不少初学者。正因如此,...
- //Clojure入门教程: Clojure – Functional Programming for the J...