【发布时间】:2012-01-02 13:56:10
【问题描述】:
鉴于下面的通用register 方法,我想将:= 运算符定义为符号别名。
def register[Prop <: Property[_]](prop: Prop): Prop
@inline
final def :=[Prop <: Property[_]] = register[Prop] _
本来想写这样的:
val := = register _
但这给了我函数签名Nothing => Nothing。我的下一个尝试是使用 Prop 类型对其进行参数化,但这显然只有在我将其设为 def 时才有效,它可以接受类型参数并继续传递它们。
理想情况下,我想省略 @inline 注释,但我不确定 Scala 编译器从中生成了什么目标代码。
最重要的我的目标是不要让:= 方法复制register 方法签名的所有部分(名称除外),然后简单地让前者委托给后者。
【问题讨论】:
标签: scala methods operators alias