Scala下划线_用法总结

目录

1.匿名函数参数占位符:

2.无用匿名函数参数

3.泛型定义中的通配符

4.模式匹配中的通配符/占位符

5.导入语句中的通配符

6.变量默认值初始化

7.访问元组(作为元组索引的前缀)

8.声明setter()方法

9.变长参数的转化

10.将方法转换成函数

11.定义偏应用函数(代替暂时不想传递的参数)


1.匿名函数参数占位符:

当匿名函数传递给方法或其他函数时,如果该匿名函数的参数在=>的右侧只出现一次,

那么就可以省略=>,并将参数用下划线代替。这对一元函数和二元函数都适用。(_+_)

Scala下划线_用法总结_第1张图片

2.无用匿名函数参数

当匿名函数的参数未被实际使用时,可以不给它一个命名,而是用下划线代替,但是不可以在print中使用

Scala下划线_用法总结_第2张图片

3.泛型定义中的通配符

在Java中用问号来指代泛型中不确定类型的定义(如List)。Scala用下划线来代替它

4.模式匹配中的通配符/占位符

得益于Scala模式匹配(pattern matching)的强大,下划线在模式匹配中的用途非常灵活。它除了可以用来代替Java switch-case表达方式中的default之外,还可以占位表示其他元素甚至类型

Scala下划线_用法总结_第3张图片

5.导入语句中的通配符

下划线可以实现Java import语句中星号的作用,但功能更强大一些。利用它还能导入时做

重命名,以及忽略某些类

导入包中的所有类(作为包引入的通配符),也可以将导入包的类重新命名

在导入某个包中的类时屏蔽掉某个类(例如不导入Timer类)

Scala下划线_用法总结_第4张图片

6.变量默认值初始化

用下划线可以自动在变量声明时,将其赋予默认的初始值。

Scala下划线_用法总结_第5张图片

7.访问元组(作为元组索引的前缀)

下划线后面跟着数字k,可以当作索引表示元组中的第k个元素。当要忽视元组中的某个值时,也可以用下划线替代他

Scala下划线_用法总结_第6张图片

8.声明setter()方法

scala中没有显式的setter方法,需要在getter方法的命名后加上一个下划线来当作setter方法使用

Scala下划线_用法总结_第7张图片

9.变长参数的转化

下划线与星号连用,可以将序列转化为变长参数的序列,方便调用变长参数的方法

Scala下划线_用法总结_第8张图片

10.将方法转换成函数

我们都知道Scala中方法与函数的不同点。其中最显著的不同就在于,函数在Scala中是一种对象实例,因此它可以赋值给变量,也可以作为参数。如果方法在赋值时直接写名称的话,编译器会认为是对方法的调用,因此会报没有参数列表的错误。在方法名称后加一个下划线,会将其转化为偏应用函数(partially applied function),就能直接赋值了

Scala下划线_用法总结_第9张图片

11.定义偏应用函数(代替暂时不想传递的参数)

既然偏应用函数就是不提供或者只提供部分参数调用时返回的函数,我们也可以用下划线

来代替那些不提供的参数

Scala下划线_用法总结_第10张图片

你可能感兴趣的:(scala)