scala语言中的下划线
2016-12-18 本文已影响62人
代码足迹
scala语言中下划线的应用有特别的意思,下面通过一个程序来总决一下这个些应用。
/**
* 应用一:这里的math._就相当于Java中的math.*;
*/
import scala.math._
object HelloUnderlined {
/**应用二:这里的下划线代码的是 null 和null的作用是一样的*/
var name:String=_
def main(args: Array[String]) {
min(100, 12)
/**
* 应用三:当函数接收的参数不定长的时候,假如你想输入一个队列
* 可以在一个队列后加入“:_*”,因此,这里的“1 to 5”也可以改写为:“Seq(1,2,3,4,5)”
*/
println("----应用三------")
val result=sum(1 to 5:_*)
println(result)
val result2=sum(Seq(1,2,3,4,5):_*)
println(result2)
/**
* 应用四:集合中使用(最常用的地方)
* 这里的下划线代表了集合中的“某(this)”一个元素。这个用法很常见,在foreach等语句中也可以使用。
*/
println("----应用四------")
(1 to 3).map(_*2).foreach(println)
/**
* 应用五:模式匹配中
* 在这里相当于“others”的意思
*/
println("----应用五------")
val value ="ab"
val r1 = value match{
case "a" => 1
case "b" => 2
case _ =>"other"
}
println(r1)
/**
* 应用六:表示队列
*/
println("----应用六------")
val v2 = 1 to 5
val r2 = v2 match{
case Seq(_,_*) => 1
case _ => "result"
}
println(r2)
/**
* 应用七:“偏函数”用法
*/
println("----应用七------")
val set = setFunction(3.0, _:Double)
println(set(7.1))
/**
* 应用八:元组Tuple中使用
*/
println("----应用八------")
val value8=("java", 2, 3)
println(value8._1)
println(value8._2)
println(value8._3)
}
def sum(parms : Int*) = {
var result = 0
for(parm <- parms) result += parm
result
}
def setFunction(parm1:Double,parm2:Double): Double = parm1+parm2
}