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
}
}