首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Scala 特殊符號對照表:::、:_、=>、<- 等語法糖解析

     編輯:Java 綜合教學

Scala 特殊符號對照表:::、:_、=>、<- 等語法糖解析

Scala 擁有豐富的符號運算子,許多在其他語言中罕見。本文彙整常見且易混淆的符號含義與用法,協助快速閱讀 Scala 程式碼。

符號對照表

符號名稱/用途範例說明
:::List 串接List(1,2) ::: List(3,4)回傳新 List List(1,2,3,4)
::元素前綴1 :: List(2,3)回傳 List(1,2,3),右結合
_NTuple 存取val t = (1,"a"); t._1索引從 1 開始,非 0
->建立 Tuple2"a" -> 1等同 ("a", 1) 或 Tuple2("a", 1)
<-for-comprehension 產生器for (x <- List(1,2)) yield x*2遍歷集合、Option、Future 等
=>函數字面值/型別Int => String函數型別:輸入 Int 回傳 String
() => T無參函數型別() => "hello"呼叫時不需參數,回傳 T
Unit =>副作用函數型別Unit => println("hi")Unit 相當於 void
_通配符/佔位符case _ =>, _ + 1模式匹配預設、匿名函數參數
_*序列展開f(xs: _*)將 Seq 作為可變參數傳遞

詳細範例

1. List 操作

val one = List(1,2,3)
val two = List(4,5,6)
val three = one ::: two  // List(1,2,3,4,5,6)
val four = 0 :: one      // List(0,1,2,3)

2. Tuple 存取

val t = ("Apple", 10, 3.14)
println(t._1) // Apple
println(t._2) // 10

3. 箭頭建立 Tuple

val pair = "key" -> "value" // ("key", "value")

4. For-comprehension

for (i <- 1 to 3; j <- 'a' to 'c') println(s"$i$j")
// 1a 1b 1c 2a 2b 2c 3a 3b 3c

5. 函數型別與匿名函數

val f: Int => String = x => x.toString
val g: () => Int = () => 42
val h: Unit => Unit = _ => println("side effect")

6. 序列展開

def sum(xs: Int*) = xs.sum
val list = List(1,2,3)
sum(list: _*) // 6

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved