【发布时间】:2013-02-14 14:19:03
【问题描述】:
我想要一个执行以下操作的 scala 宏: 当我写的时候:
myCreateCityMacro("paris")
myCreateCityMacro("vallorbe")
我想得到:
val paris = new City("paris")
val vallorbe = new City("vallorbe")
【问题讨论】:
-
val x = new X("x")在 Scala 中不是一个简单的表达式,因此不能像您想的那样由宏返回。我认为最适合您的情况的方法是val x = city,它是 city 一个通过检查上下文调用的前缀来推断城市名称的宏。 -
Ops,我弄错了,
context.prefix无法访问 val 的名称。
标签: scala scala-macros scala-2.10