关于scala:Scala-下划线用法总结

228次阅读

共计 1134 个字符,预计需要花费 3 分钟才能阅读完成。

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

关键词:大数据培训

正文完
 0