在Scala中将运算符定义为方法别名的最短符号是什么?

Tim*_*ske 7 methods alias scala operators

鉴于register下面的通用方法,我想将:=运算符定义为符号别名.

def register[Prop <: Property[_]](prop: Prop): Prop

@inline
final def :=[Prop <: Property[_]] = register[Prop] _
Run Code Online (Sandbox Code Playgroud)

本来我想写这样的东西:

val := = register _
Run Code Online (Sandbox Code Playgroud)

但这给了我功能签名Nothing => Nothing.我的下一次尝试是使用类型对其进行参数化,Prop但这显然只有在我将其设为a时才有效def,它可以采用类型参数并将其传递给它们.

理想情况下,我想省略@inline注释,但我不确定Scala编译器使用什么目标代码.

最重要的是我的目标是不让:=方法复制register方法签名的所有部分,除了名称,然后简单地让前者委托给后者.

Lui*_*hys 2

def :=[Prop <: Property[_]](prop: Prop) = register(prop)
Run Code Online (Sandbox Code Playgroud)

应该管用。