Scala:通过方法隐式转换(例如toString)
发布时间:2020-12-16 18:03:22 所属栏目:安全 来源:网络整理
导读:在 Scala中,我想做: class Identifier(val str: String) { override def toString(): String = str}class Variable(t: Type,name: Identifier,mutable: Boolean) { override def toString(): String = name} 但我不能,因为Scala不会将Variable#toString()定
在
Scala中,我想做:
class Identifier(val str: String) { override def toString(): String = str } class Variable(t: Type,name: Identifier,mutable: Boolean) { override def toString(): String = name } 但我不能,因为Scala不会将Variable#toString()定义中的名称隐式转换为String.有没有办法实现这一目标? 要明确:我不想定义一个额外的方法,如: object Identifier { implicit def idToString(x: Identifier): String = x.str } 我想调用toString()方法来进行转换. 解决方法
尝试在Variables toString方法中调用name之后调用一个显式的toString()调用,如下所示:
override def toString() = name.toString() 在这里,您将显式调用将Variable转换为字符串的方法,从而准确地告诉编译器您想要的内容. ..除非你真的要求方法是隐含的…… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |