我正在用 Scala 构建一个 DSL,我有这样一个对象:
object block {
def apply(content: String): String = "{\n" + content + "}\n"
def apply(): String = block("empty block")
}
所以稍后在我的 DSL 中我可以说:
block {
"good stuff goes here"
}
没关系,但是apply()
我想使用第二种方法来允许用户编写空块,以便稍后填充它们。但是编译器不允许使用大括号调用无参数apply()
方法......除了使用括号之外,还有什么方法可以解决吗?如果不是,那为什么不允许这样做?
更新:供参考:这两个答案应该结合起来以获得全貌。