在Scala中将运算符定义为方法别名的最短表示法是什么?
发布时间:2020-12-16 19:12:56 所属栏目:安全 来源:网络整理
导读:鉴于下面的通用寄存器方法,我想将:=运算符定义为符号别名. def register[Prop : Property[_]](prop: Prop): Prop@inlinefinal def :=[Prop : Property[_]] = register[Prop] _ 本来我想写这样的东西: val := = register _ 但这给了我功能签名Nothing =没有
鉴于下面的通用寄存器方法,我想将:=运算符定义为符号别名.
def register[Prop <: Property[_]](prop: Prop): Prop @inline final def :=[Prop <: Property[_]] = register[Prop] _ 本来我想写这样的东西: val := = register _ 但这给了我功能签名Nothing =>没有.我的下一次尝试是使用类型Prop对它进行参数化,但这显然只有在我将其设为def时才有效,它可以采用类型参数并将其传递给它们. 理想情况下,我想省略@inline注释,但我不确定Scala编译器使用什么目标代码. 最重要的是我的目标是不要让:=方法复制注册方法签名的所有部分,除了名称,然后简单地让前者委托给后者. 解决方法def :=[Prop <: Property[_]](prop: Prop) = register(prop) 应该管用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 如何在@ViewChild Angular2中查找子元素?
- 通过Iteratee与Play2/Scala将文件上传流转发到S3
- 将Application Module中的方法发布为webservice
- 基于.NET的推送通知服务
- twitter-bootstrap – 用于模态的Bootstrap验证器不会重置F
- Angular开发实践(七): 跨平台操作DOM及渲染器Renderer2
- twitter-bootstrap – Twitter Bootstrap Collapse(Accordi
- 角度材料自动完成不起作用,没有显示错误
- 为什么在Scala中用`def`覆盖`var`是不可能的?
- shell – 如何更改Docker ENV var?