scala中的《_》用法

一、scala中的《_》用法
//1、方法转化为函数
例如:
def m1(x:Int,y:Int)=x*y    
val f1=m1 _

//2. 集合中的每一个元素
//指代一个集合中的每个元素。
例如:
val list=List(1,2,3,4)
val list1=list.map(_ * 10)

//3. 获取元组Tuple中的元素
例如:
 val t=("hadoop",3.14,100)
  t._1   
  t._2   
  t._3

//4. 模式匹配
例如:
val word="hadoop"
val result =word match{
  case "hadoop" => 1    
      case "spark"  => 2
      case  _       => 0     //以上都没有匹配到才会被执行
}

//5. 队列中占位符
//ps: 下划线是当前scala中对函数的一种简化,代替形参进行计算
	// 可以代替的是:一个参数 或 两个参数
	// 代替参数时候,最好数据类型都是一致的
	// 下划线并不会代替所有的参数,某些情况下,scala是不允许使用下划线代替
	// 原因:若使用下滑线,在scala部分情况会出现语义不明效果
	//部分情况: map((_._1,_._2)) ,若map遍历的元组第一个元素,第一个下划线与_.1数据类型不同,会语义不明——》下划线代替的前提是数据类型是一致 
	//更改:使用 map(t=>(t._1,t._2))代替下就行。
例如:
val list=List(1,2,3,4)
list match{
         case List(_,_*) =>1
         case _ =>2
}

//6. 导包引入的时候
例如:
import scala.collection.mutable._
表示引入的时候将scala.collection.mutable包下面所有的类都导入——》作为“通配符”,类似Java中的*
//特殊的方式来隐藏类 {类名=>_}
import java.util.{Date=>_}	//变灰

//7. 初始化变量
//代表的是某一类型的默认值。
//对于Int来说,它是0。
//对于Double来说,它是0.0
//对于引用类型,它是null。
例如:
var name:String=_
//在这里,name也可以声明为null,例:var name:String=null。这里的下划线和null的作用是一样的。
var age:Int=_
//在这里,age也可以声明为0,例:var age:Int=0。这里的下划线和0的作用是一样的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值