准引号

语法摘要

语言
此文档页面特定于 Scala 2 中提供的功能,这些功能已在 Scala 3 中移除或被替代方案取代。除非另有说明,本页面中的所有代码示例均假设你使用的是 Scala 2。

Denys Shabalin 实验性

表达式

  准引号 类型
q"" EmptyTree
文本 q"$value" 文本
标识符 q"$tname"q"name" Ident
选择 q"$expr.$tname" Select
超级选择 q"$tpname.super[$tpname].$tname" Select
This q"$tpname.this" This
应用程序 q"$expr(...$exprss)" Apply
类型应用程序 q"$expr[..$tpts]" TypeApply
分配 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" LabelDef
Do-While 循环 q"do $expr while ($expr)" LabelDef
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" Ident
单例类型 tq"$ref.type" 单例类型树
类型投影 tq"$tpt#$tpname" 从类型树中选择
类型选择 tq"$ref.$tpname" Select
超类型选择 tq"$tpname.super[$tpname].$tpname" Select
此类型选择 tq"this.$tpname" Select
应用类型 tq"$tpt[..$tpts]" 应用类型树
带注释类型 tq"$tpt @$annots" 带注释
复合类型 tq"..$parents { ..$defns }" 复合类型树
存在类型 tq"$tpt forSome { ..$defns }" 存在类型树
元组类型 tq"(..$tpts)"
函数类型 tq"(..$tpts) => $tpt"

模式

  准引号 类型
通配符模式 pq"_" Ident
字面量模式 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 trait $tpname[..$tparams] extends { ..$earlydefns } with ..$parents { $self => ..$stats }" TraitDef
对象 q"$mods object $tname extends { ..$earlydefns } with ..$parents { $self => ..$body }" ModuleDef
q"package $ref { ..$topstats }" PackageDef
包对象 q"package object $tname extends { ..$earlydefns } with ..$parents { $self => ..$stats }" PackageDef

辅助

  准引号 类型
导入 q"import $ref.{..$sels}" 导入
案例子句 cq"$pat if $expr => $expr" CaseDef
生成器枚举器 fq"$pat <- $expr"
值定义枚举器 fq"$pat = $expr"
保护枚举器 fq"if $expr"

缩写

未引用前缀表示以下内容

每当名称有后缀 s 时,表示它是某个内容的 Listss 表示 List of Lists。因此,例如 exprss 表示 List of Lists of expressions。

此页面的贡献者