gpt4 book ai didi

Scala:通过方法进行隐式转换(例如 toString)

转载 作者:行者123 更新时间:2023-12-05 00:00:45 26 4
gpt4 key购买 nike

在 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 不会隐式转换 nameVariable#toString()的定义为字符串。有没有办法做到这一点?

需要明确的是:我不想定义一个额外的方法,比如:
object Identifier {
implicit def idToString(x: Identifier): String = x.str
}

我想要 toString()要调用的方法来进行转换。

最佳答案

试着把一个明确的 toString()Variables 中调用名称后调用toString 方法如下:

override def toString() = name.toString()

在这里,您将显式调用转换 Variable 的方法。到一个字符串,从而准确地告诉编译器你想要什么。

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

关于Scala:通过方法进行隐式转换(例如 toString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com