Scala 下划线用法总结

Scala 是一门以 java 虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。scala 单作为一门语言来看, 非常的简洁高效,在 Scala 中存在很多让代码更加简洁的语法,下划线“_”便是其中一个。下划线的普遍用法总结如下:

  1. 用于变量初始化

在 Java 中,可以声明变量而不必给出初始值,在 Scala 中,变量在声明时必须显示指定,可以使用下划线对变量进行初始化。而且该语法只适用于成员变量,不适用于局部变量。例:

class Student{
//String类型的默认值为null
var name:String=-
  1. 用于导包引入

导包引入时使用_导入该包下所有内容,类比 Java 中的*。例如:

//Java
import java.util.*1/Scala
Import java.uti.

3.用于将方法转变为函数

在 Scala 中方法不是值,而函数是。所以一个方法不能赋值给一个 val 变量,而函数可以。方法可以转换为函数赋值给变量,例:

//将println方法转换成函数。
井赋值给pval p = printin_

  1. 用于模式匹配

模式匹配中可以用下划线来作为 Java 中 default 的类比使用,也可以在匹配集合类型时,用于代表集合中元素,例:
val t =(1,2,3)
printIn(t._1, t_2,t._3)

str match{
case "1" => printIn("match 1"7)
case_=>printin("match default")
/匹配以0开头,长度为三的列表
expr match [
case List(O,, ) => printin("found it)case _=>
//苋配以0开头,长度任衰的列表expr match {
case List(0,_) =>printin("found it)case_=>
)
//匹配元组元素expr match [
case (0,)=> printin("found it)case_ =>
1/将首元素赋值给head变量val Lst(head,_)= List(a7)
  1. 用于访问 tuple 元素

例:

val t =(1,2,3)
printIn(t._1, t_2,t._3)

  1. 用于简写函数

如果函数的参数在函数体只出现一次,则可以用下划线代替。

val nums = List(1,2,3.4,5.6,7,8,9,10)nums.map (+2)
nums.sortWith_>nums.filter(%2== O)

  1. 定义偏函数

对某个多参数函数进行部分函数调用,大数据培训没有传入的参数使用_代替,返回结果即为偏函数。例:
def sum(a: lnt, b: Int, c: Int)= a+b+cval b = sum(1,_: Int,3)
b: Int => Int = cfunction1>b(2)//6

posted @ 2022-04-01 16:03  Linux运维阿铭  阅读(187)  评论(0编辑  收藏  举报