scala語言中的下劃線

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


}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容