【发布时间】:2021-07-23 07:35:40
【问题描述】:
有没有办法创建一个可以在 scala 中以中缀表示法传递附加参数的函数?
类似这样的:a op(additionalParam) b
编辑:我很确定这是不可能的。也许有人可以说服我?最后我只需要传递一个数字给op
【问题讨论】:
标签: scala
有没有办法创建一个可以在 scala 中以中缀表示法传递附加参数的函数?
类似这样的:a op(additionalParam) b
编辑:我很确定这是不可能的。也许有人可以说服我?最后我只需要传递一个数字给op
【问题讨论】:
标签: scala
不,language specification 有这个:
InfixExpr ::= PrefixExpr
| InfixExpr id [nl] InfixExpr
PrefixExpr ::= [‘-’ | ‘+’ | ‘!’ | ‘~’] SimpleExpr
所以中缀只适用于两个表达式之间的简单id。 id 是第一个表达式返回的对象的方法名称,该表达式采用与第二个表达式的类型兼容的参数。
【讨论】:
我不这么认为,但你可能会这样做。
class A {
def op(b: B): C = new C
def op(otherParam: OP): A = new A
}
import scala.language.postfixOps
a op b //->C
a op addedParam op b //->C
只需将A、B、C 和OP 类型替换为更有意义的类型即可。
【讨论】: