gpt4 book ai didi

scala - 如何在 Scala 中定义 "global implicit class"?

转载 作者:行者123 更新时间:2023-12-01 08:28:08 24 4
gpt4 key购买 nike

考虑到隐式类“必须在另一个特征/类/对象内定义”1 ,如何全局定义隐式转换?

情况是我想为所有 Strings 添加一个方法(或 Lists )在我的应用程序中,或者至少是它的几个包。

最佳答案

无论是在 Java 中,还是在 Scala 中,都不能向“全局”范围添加任何内容。
但是,在 Scala 中可以定义 package objects ,它可以包含在整个包中使用的方法,并且可以由用户轻松导入。

这看起来像这样:在目录 foo/bar/baz 中创建一个名为 package.scala 的文件具有以下内容:

package foo.bar

package object baz {
implicit def incrediblyUsefulConversion(s: String) = ...
}

然后,用户可以在其代码中执行以下操作以激活转换:
import foo.bar.baz._

或者可能
import foo.bar.baz.incrediblyUsefulConversion

当然,您也可以在其他包中使用您自己的代码,就像任何其他用户一样。

关于scala - 如何在 Scala 中定义 "global implicit class"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29736707/

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