有没有办法,如何在类型上表达减号运算符?我希望能够做到这一点:
trait A
trait B
type C = A with B
type D = C minus A
// type B == D
我知道,这不能直接完成,但也许有人能够用一些聪明的技巧来表达这个运算符......
- - 编辑
动机:
trait A
object B extends A
object C extends A
object D extends A
def myMethod(one:A,two:A,three:A) = ???
每种类型只使用一次有效,所以当该方法的用户选择B
参数时,在其他参数 one
中使用C
and是有效的...D