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方法签名的所有部分,除了名称,然后简单地让前者委托给后者.
def :=[Prop <: Property[_]](prop: Prop) = register(prop)
Run Code Online (Sandbox Code Playgroud)
应该管用。