我希望能夠在下面的表達式擺脫括號/括號在我的DSL:如何擺脫scala DSL表達式中的括號?
substitute ("hello {0}" using "world")
的代碼的其餘部分是這樣的:
class Rule(format: String) {
def using(arggs: String*): Rule = { /* save the args */ return this }
def execute() = { /* substitute params */ }
}
def substitute(rule: Rule) = rule.execute()
implicit def makeRule(format: String) = new Rule(format)
我已經嘗試了apply()方法,但我不認爲我可以這樣做。我可以使用哪些Scala魔術?
謝謝,但我知道,這是我在括號內使用。這是我想要以某種方式擺脫的外支架。 – 2013-03-08 22:27:57
而這就是要點。你不能'因爲它會以完全破壞的方式改變分析。你可以做的最好的是「重新組合」你的DSL,因此它符合Scala無點,無括號的語法。 – 2013-03-08 23:15:18
令人失望,但感謝您確認無論如何。 – 2013-03-09 21:26:01