scala中常用但其他語言不常見的符號含義


本文旨在介紹Scala在其他語言中不太常見的符號含義,幫助理解Scala Code。

隨着我對Scala學習的深入,我會不斷增加該篇博文的內容。

修改記錄

----2016.11.23  新增scala中最神秘強大的下划線(_)用處

 

下面介紹Scala中的符號:

  • :::三個冒號運算符:表示list的連接操作
val one = List(1,2,3)
val two = List(4,5,6)
val three = one:::two

  輸出結果為:three: List[Int] = List(1, 2, 3, 4, 5, 6)

  • :: 兩個冒號運算符:表示普通元素與list的連接操作
  • _N下划線數字運算符:用於訪問元組的第N個元素,N的取值從1開始。元組的元素訪問方法與數組不同是因為元組的元素類型可以不同。
  • -> 返回一個二元元組
val four = one -> two

  返回:(List[Int], List[Int]) = (List(1, 2, 3),List(4, 5, 6))

  • <-  用於遍歷集合對象 
  • =>  把左邊的東西改成右邊的東西;可以看做創建函數實例的語法糖,這個運算符常見的有下面三種:
    • =>:Example:Int => String表示函數輸入為Int型,返回String型,同Function(Int,String)
    • ()=>:Example:() => T表示函數沒有輸入參數,但返回T
    • Unit=>:Unit相當於無值的值,相當於C++中的Void
  •  _   有很多含義

      1、通配符  

import org.apache.spark.SparkContext._

        2、匿名函數

                 3、指代集合中的每一個元素。例如篩選列表中大於某個值的元素

val lst = List(1,2,3,4,5)
val lstFilter = lst.filter(_ > 3)

             4、使用模式匹配可以用來獲取元組的組員。

val m = Map(1 -> 2,2 -> 4)
for ((k,_) <- m) println(k)   //如果不需要所有部件,則在不需要的部件使用_;本例只取key,因此在value處用_

           5、代表某一類型的默認值

                      對於Int類型來說,它是0

                      對於Double來說,它是0.0

                      對於引用類型來說,它是null

  • :_* 作為一個整體,告訴編譯器你希望將某個參數當作數序列處理。
val s = sum(1 to 5:_*)      //把1 to 5當作一個序列處理
  • +=:為map類型變量添加元素
  • -=:為map類型變量移除元素及其對應的值

參考文獻

 1 http://stackoverflow.com/questions/6951895/what-does-and-mean-in-scala

   2 http://docs.scala-lang.org/tutorials/FAQ/finding-symbols.html

   3 https://www.zhihu.com/question/21622725/answer/21588672


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM