在 Scala 中,如果我想实现一个 DSL,有没有办法做到以下几点:
我有一个名为“Draw”的对象,其中包含函数 def draw(d:Drawable)
我该如何制作它以便我可以导入对象并在对象外部调用它,例如:
draw ball
如果球扩展了 Drawable 特性?问题是我想在一种中缀表示法中使用 draw,但我不想通过表示它正在实现类/对象来限定函数 draw。
最佳答案
你不能这样做。除了四个前缀运算符,在任何运算符符号中,第一个标记代表对象。
关于Scala DSL、对象和中缀表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868341/