Scala特征和隐式转换混淆
发布时间:2020-12-16 19:19:41 所属栏目:安全 来源:网络整理
导读:当我在 Scala REPL(2.7.7)上手动输入时,以下行有效: trait myTrait { override def toString = "something"}implicit def myTraitToString(input: myTrait): String = input.toStringobject myObject extends myTraitval s: String = myObject 但是,如果我
当我在
Scala REPL(2.7.7)上手动输入时,以下行有效:
trait myTrait { override def toString = "something" } implicit def myTraitToString(input: myTrait): String = input.toString object myObject extends myTrait val s: String = myObject 但是,如果我尝试用它编译文件,我会收到以下错误: [error] myTrait.scala:37: expected start of definition [error] implicit def myTraitToString(input: myTrait): String = input.toString [error] ^ 为什么? 谢谢! 解决方法
无法在顶层定义函数.将myTraitToString放在(伴侣,如果你喜欢)对象中:
object myTrait { implicit def myTraitToString(input : myTrait) : String = input.ToString } 然后将其纳入范围: import myTrait._ 每当myTraitToString在范围内时 – 即当你可以在没有任何点的情况下调用它时 – 它将被隐式应用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 保存后vim会创建我的文件的副本吗?
- angularjs – 在角度2中有多个活动模块
- scala – 如何将ask的结果转换为合适的类型?
- 使用Jersey来创建RESTful WebService
- 为了更好的支持微服务,我们从PHP迁移到了Go
- Websphere 下 发布webservice Websphere 下 开发 webservic
- scala – 惯用法替代`if(x)Some(y)else None`
- WebService客户端——HttpClient调用WebService
- Angular2:如何将选定的项目从HTML datalist元素传递回组件
- angular-ui-bootstrap – 角度UI手柄与标题部分中的按钮