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» очень похожи на выражение, а не на то, что изменяет глобальные команды объектов. – dth