作为"通配符”,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)到底有多少种应用场景?
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 下划线这个符号几乎贯穿了任何一本Scala编程书籍,并且在不同的场景下具有不同的含义,绕晕了不少初学者。正因如此,...
- //Clojure入门教程: Clojure – Functional Programming for the J...