scala中下划线的几种含义

目录

1. 将方法转变为函数

2. 表示集合里的每个元素

3. 获取元组Tuple中的元素

4. 模式匹配

5. 队列匹配

6. 通配符

7. 变长参数

8. 初始化变量


1. 将方法转变为函数

def method1(x:Int,y:Int)=x*y
val func1=method1 _   // 注意这里的空格
method1(2,3)
func1(2,3)
//    res: Int = 6

2. 表示集合里的每个元素

val list1=List(1,2,3,4)
val list2=list1.map(_ * 10)
//    list2: List[Int] = List(10, 20, 30, 40)

//  用_分别表示二元函数中的参数x和y
List(10, 5, 8, 1, 7).sortWith(_ < _)
//    res: List[Int] = List(1, 5, 7, 8, 10)

3. 获取元组Tuple中的元素

val t=("wyk",1.23,100)
println(t._1) // wyk
println(t._2) // 1.23
println(t._3) // 100

4. 模式匹配

包括字符串匹配、类型匹配、数组匹配、集合匹配和元组匹配

val word="wyk"
val result =word match{
  case "wyk" => 1
  case "csdn" => 2
  case _ => 0 // 以上都没有匹配到才会被执行
}

// 通过模式匹配获取元组的元素,当不需要某个值的时候可以使用_替代,例如
val t1 = (1, 1.23, "wyk")
val (first, second, _) = t1  
// 此时新定义了两个常量 first second
//    first: Int = 1
//    second: Double = 1.23

5. 队列匹配

val list=List(1,2,3,4)
list match{
  case List( _,_* ) =>1  // List(_,_*)表示匹配以任意开头,任意数量的列表。其他类似的有:List(3,x,y) 匹配3开头,共3个元素的list。  List(3,_*) 匹配3开头,任意数量的list。
  case _ =>2  //除此之外 匹配此处
}

6. 通配符

//导包引入,表示引入的时候将 scala.collection.mutable 包下面所有的类都导入
import scala.collection.mutable._

7. 变长参数

def sum(args: Int*) = {
  var result = 0
  for (arg <- args) result += arg
  result
}

val s1 = sum(1,2,3,4,5)
// 等效于
val s2 = sum(1 to 5: _*)

8. 初始化变量

// 在这里, age 也可以声明为 0 ,例: var age:Int=0 。这里的下划线和 0 的作用是一样的。
var age:Int=_   
// 在这里, name 也可以声明为 null ,例: var name:String=null 。这里的下划线和 null 的作用是一样的。
var name:String= _  

 希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值