Scala下划线_用法总结

目录

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

2.无用匿名函数参数

3.泛型定义中的通配符

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

5.导入语句中的通配符

6.变量默认值初始化

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

8.声明setter()方法

9.变长参数的转化

10.将方法转换成函数

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


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

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

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

2.无用匿名函数参数

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

3.泛型定义中的通配符

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

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

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

5.导入语句中的通配符

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

重命名,以及忽略某些类

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

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

6.变量默认值初始化

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

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

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

8.声明setter()方法

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

9.变长参数的转化

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

10.将方法转换成函数

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

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

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

来代替那些不提供的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值