Scala DSL、对象和中缀表示法

标签 scala dsl scala-2.8 infix-notation

在 Scala 中,如果我想实现一个 DSL,有没有办法做到以下几点:

我有一个名为“Draw”的对象,其中包含函数 def draw(d:Drawable)
我该如何制作它以便我可以导入对象并在对象外部调用它,例如:

draw ball

如果球扩展了 Drawable 特性?问题是我想在一种中缀表示法中使用 draw,但我不想通过表示它正在实现类/对象来限定函数 draw。

最佳答案

你不能这样做。除了四个前缀运算符,在任何运算符符号中,第一个标记代表对象。

关于Scala DSL、对象和中缀表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2868341/

相关文章:

generics - Scala参数化类型问题与返回相同类型的实例

scala - 为什么这个简单的 Scala for comprehension 不执行 future ?

scala - 如何过滤 sbt 监视更改的文件?

ruby-on-rails - 你会如何用 Ruby 设计这样的 DSL?

c# - 如何强制 c# binary int 除法返回 double?

scala - 可以在 Scala 中编写类似于 C++ 模板的通用返回类型吗?

generics - 返回相同的集合类型,不同的参数化

scala - 将 Scala 列表拆分为 n 个交错列表

java - 在 JPA 范围内以编程方式构建 HQL 查询 "non-dynamic"

scala - scala 2.8 中的隐式转换问题