gpt4 book ai didi

scala - 覆盖 Scala 类型的 toString

转载 作者:行者123 更新时间:2023-12-04 10:25:25 24 4
gpt4 key购买 nike

我在 Scala 中有一个类型:

  type Fingerprint = Seq[(Int, Int)]

我想覆盖 toString这种类型的。我怎样才能做到这一点?

最佳答案

有充分的理由使用基于类型的方法来解决此类问题,而不是 Scala 的 toString (可以说这只是来自 Java 的令人不快的传闻),以及您无法锁定 toString 的事实。在任意类型上就是其中之一。例如,您可以使用 Scalaz 编写以下内容的 Show类型类:

import scalaz._, syntax.show._

implicit val fingerprintShow: Show[Fingerprint] = Show.shows(
_.map(p => p._1 + " " + p._2).mkString("\n")
)

进而:
scala> Seq((1, 2), (3, 4), (5, 6)).shows
res0: String =
1 2
3 4
5 6

更喜欢基于类型类的方法而不是基于隐式类或其他隐式转换的方法也有很好的理由——类型类实例通常更容易推理和调试。

关于scala - 覆盖 Scala 类型的 toString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21333181/

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