class A {
def op(b: B, additionalParam: AP) = ???
}
a op (b, additionalParam)
实际上,如果op被重载,它优先于一个元组参数:
class A {
def op(b: B, additionalParam: AP) = "two arguments"
def op(b: (B, AP)) = "one argument"
}
a op (b, additionalParam) // two arguments
a op ((b, additionalParam)) // one argument
3条答案
按热度按时间twh00eeo1#
不,语言规范有以下内容:
因此,中缀只适用于两个表达式之间的简单
id
。id
是由第一个表达式返回的对象上的方法的名称,该方法的参数与第二个表达式的类型兼容。weylhg0b2#
我不这么认为,但你可能会做这样的事情。
只需将
A
、B
、C
和OP
类型替换为更有意义的类型即可。nwsw7zdq3#
是的,你可以使用can pass multiple arguments to infix operators(在Scala 2和Scala 3中),但是具体的语法与你的例子不同:将所有参数写在运算符右侧的括号中,顺序与声明它们的顺序相同:
实际上,如果
op
被重载,它优先于一个元组参数: