此文件頁面特定於 Scala 2 中發布的功能,這些功能已在 Scala 3 中移除或由其他選項取代。除非另有說明,此頁面中的所有程式碼範例都假設您使用 Scala 2。
Denys Shabalin 實驗性
表達式
|
準引號 |
類型 |
空值 |
q"" |
EmptyTree |
文字 |
q"$value" |
文字 |
識別碼 |
q"$tname" 或 q"name" |
身分 |
選取 |
q"$expr.$tname" |
選取 |
超級選取 |
q"$tpname.super[$tpname].$tname" |
選取 |
此 |
q"$tpname.this" |
此 |
應用 |
q"$expr(...$exprss)" |
套用 |
類型應用 |
q"$expr[..$tpts]" |
類型套用 |
指派 |
q"$expr = $expr" |
指派、指派或命名參數 |
更新 |
q"$expr(..$exprs) = $expr" |
樹 |
傳回 |
q"return $expr" |
傳回 |
擲回 |
q"throw $expr" |
擲回 |
歸屬 |
q"$expr: $tpt" |
類型化 |
註解 |
q"$expr: @$annot" |
註解 |
元組 |
q"(..$exprs)" |
樹 |
區塊 |
q"{ ..$stats }" |
區塊 |
如果 |
q"if ($expr) $expr else $expr" |
如果 |
樣式比對 |
q"$expr match { case ..$cases }" |
比對 |
嘗試 |
q"try $expr catch { case ..$cases } finally $expr" |
嘗試 |
函式 |
q"(..$params) => $expr" |
函式 |
部分函式 |
q"{ case ..$cases }" |
比對 |
While 迴圈 |
q"while ($expr) $expr" |
標籤定義 |
Do-While 迴圈 |
q"do $expr while ($expr)" |
標籤定義 |
For 迴圈 |
q"for (..$enums) $expr" |
樹 |
For-Yield 迴圈 |
q"for (..$enums) yield $expr" |
樹 |
新增 |
q"new { ..$earlydefns } with ..$parents { $self => ..$stats }" |
樹 |
XML 文字 |
原生不支援 |
樹 |
類型
|
準引號 |
類型 |
空類型 |
tq"" |
類型樹 |
類型識別碼 |
tq"$tpname" 或 tq"Name" |
身分 |
單例類型 |
tq"$ref.type" |
單例類型樹 |
類型投影 |
tq"$tpt#$tpname" |
從類型樹選取 |
類型選取 |
tq"$ref.$tpname" |
選取 |
超類型選取 |
tq"$tpname.super[$tpname].$tpname" |
選取 |
此類型選取 |
tq"this.$tpname" |
選取 |
已套用類型 |
tq"$tpt[..$tpts]" |
已套用類型樹 |
註解類型 |
tq"$tpt @$annots" |
註解 |
複合類型 |
tq"..$parents { ..$defns }" |
複合類型樹 |
存在類型 |
tq"$tpt forSome { ..$defns }" |
存在類型樹 |
元組類型 |
tq"(..$tpts)" |
樹 |
函數類型 |
tq"(..$tpts) => $tpt" |
樹 |
模式
|
準引號 |
類型 |
萬用字元模式 |
pq"_" |
身分 |
文字模式 |
pq"$value" |
文字 |
繫結模式 |
pq"$name @ $pat" |
繫結 |
萃取模式 |
pq"$ref(..$pats)" |
套用、取消套用 |
類型模式 |
pq"_: $tpt" |
類型化 |
替代模式 |
pq"$first │ ..$rest" |
替代 |
元組模式 |
pq"(..$pats)" |
套用、取消套用 |
XML 模式 |
原生不支援 |
樹 |
定義
|
準引號 |
類型 |
Val |
q"$mods val $tname: $tpt = $expr" 或 q"$mods val $pat = $expr" |
ValDef |
Var |
q"$mods var $tname: $tpt = $expr" 或 q"$mods var $pat = $expr" |
ValDef |
Val 模式 |
q"$mods val $pat: $tpt = $expr" |
樹 |
Var 模式 |
q"$mods var $pat: $tpt = $expr" |
樹 |
方法 |
q"$mods def $tname[..$tparams](...$paramss): $tpt = $expr" |
DefDef |
次要建構函式 |
q"$mods def this(...$paramss) = this(..$argss)" |
DefDef |
類型 |
q"$mods type $tpname[..$tparams] = $tpt" |
TypeDef |
類別 |
q"$mods class $tpname[..$tparams] $ctorMods(...$paramss) extends { ..$earlydefns } with ..$parents { $self => ..$stats }" |
ClassDef |
特質 |
q"$mods 特質 $tpname[..$tparams] 延伸 { ..$earlydefns } with ..$parents { $self => ..$stats }" |
特質定義 |
物件 |
q"$mods 物件 $tname 延伸 { ..$earlydefns } with ..$parents { $self => ..$body }" |
模組定義 |
套件 |
q"套件 $ref { ..$topstats }" |
套件定義 |
套件物件 |
q"套件物件 $tname 延伸 { ..$earlydefns } with ..$parents { $self => ..$stats }" |
套件定義 |
輔助
|
準引號 |
類型 |
匯入 |
q"匯入 $ref.{..$sels}" |
匯入 |
案例子句 |
cq"$pat 如果 $expr => $expr" |
案例定義 |
產生器列舉器 |
fq"$pat <- $expr" |
樹 |
值定義列舉器 |
fq"$pat = $expr" |
樹 |
防護列舉器 |
fq"如果 $expr" |
樹 |
縮寫
未引號字首暗示下列
名稱:名稱
、術語名稱:術語名稱
、類型名稱:類型名稱
值:T
其中 T
是對應於給定文字的類型(例如 整數
、字元
、浮點數
等)
expr:樹
表達式樹
tpt:樹
類型樹
pat:樹
樣式樹
defn:樹
定義樹
earlydefn: Tree
早期定義樹 (val 或 類型定義)
self: Tree
自我定義樹 (亦即 val 定義)
stat: Tree
陳述樹 (定義、表達式 或 匯入)
topstat: Tree
頂層陳述樹 (類別、特質、套件、套件物件 或 匯入)
enum: Tree
for 迴圈 列舉器
param: Tree
值參數樹 (亦即 val 定義)
tparam: Tree
類型參數樹 (亦即 類型定義)
parent: Tree
範本 父項
sel: Tree
匯入 選擇器樹
當名稱有後綴 s
時,表示它是某個項目的 List
。 ss
表示 List of Lists。因此,例如 exprss
表示 List
of List
s of expressions。