scala中_的作用

来源:互联网 发布:淘宝玻璃钢化粪罐 编辑:程序博客网 时间:2024/05/18 01:26

1、初始化时

object Sample {   var name:String=_   def main (args: Array[String]){      name="hello world"     println(name)   }
这里的_和null的作用一样

2、引入时

import math._object Sample {   def main (args: Array[String]){    println(BigInt(123))   }}
这里的math._相当于math.*

3、集合中使用(最典型,最常用)

object Sample {   def main (args: Array[String]){    val newArry= (1 to 10).map(_*2)   println(newArry)   }}
这里的_表示集合中的某一个元素args,foreach中也常用这种表达

4、模式匹配

object Sample {   def main (args: Array[String]){     val value="a"  val result=  value match{       case "a" => 1       case "b" => 2       case _ =>"result"     }     println(result)   }}
这里的_相当于java中switch-case中的default(others)

还有一种写法,用Some包起来,表示Some中的值非空

object Sample {  def main (args: Array[String]){    val value=Some("a")    val result=  value match{      case Some(_) => 1      case _ =>"result"    }    println(result)  }
还有一种表示队列(others)

object Sample {  def main (args: Array[String]){    val value=1 to 5    val result=  value match{      case Seq(_,_*) => 1      case _ =>"result"    }    println(result)  }}
还有一种在scala特有的偏函数中使用(others)

object Sample {   def main (args: Array[String]){    val set=setFunction(3.0,_:Double)     println(set(7.1))   }  def setFunction(parm1:Double,parm2:Double): Double = parm1+parm2}
5、元组Tuple

object Sample {   def main (args: Array[String])={     val value=(1,2)     print(value._1)   }}
6、函数准备接收不定长的参数时

object Sample {   def main (args: Array[String])={    val result=sum(1 to 5:_*)     println(result)   }  def sum(parms:Int*)={    var result=0    for(parm <- parms)result+=parm    result  }}