1
這是我在一階DSL第一次嘗試:DSL追加字符串列出
object ListOfStringsDsl extends App {
object Commands {
val l: scala.collection.mutable.ListBuffer[String] = new scala.collection.mutable.ListBuffer();
def and(s: String) = {
l += s;
this
}
override
def toString = l.mkString(",")
}
println(Commands and("test") and("test2") toString)
}
此打印:
test,test2
這是預期的輸出。但我想簡化輸出是如何創建的,所以不是println(Commands and("test") and("test2") toString)
到輸出命令使用方法:
希望能夠使用:
println(Commands "test" and "test2" toString)
如何在Scala中實現這一目標?
這個和應該工作只是找到,調用toString可能需要導入此語言功能:import language.postfixOps你可能不應該使用副作用來實現這樣的DSL。 「asd」和「foo」看起來非常像表達式,而不是修改全局對象Commands的東西。 – dth