加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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转换为字符串的方法,从而准确地告诉编译器您想要的内容.

..除非你真的要求方法是隐含的……

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读