是否可以在 Scala 中创建未命名的隐式类或函数?
例如,如果我有以下隐式类:
implicit class ListIntExtras(list: List[Int]) {
def average = list.sum / list.size
}
我更希望能够将其定义为诸如隐式类_(list: List[Int])
之类的东西,因为类ListIntExtras
的名称实际上从来都不是在任何地方都可以使用。
对于隐式函数也是如此:
implicit def intToDouble(i: Int): Double = i.toDouble
我想将该方法定义为 implicit def _(i: Int): ...
因为我从来没有引用它的实际名称。
我知道这对于隐式 val
是可能的。例如,您可以执行 implicit val _ = new Config()
,这很有用,因为将其命名为 _
之外的任何内容似乎都是一种浪费,因为它永远不会被引用名称。
最佳答案
Scala 3 (Dotty) 提供专用 extension methods例如,有效避免为隐式类命名的语法
scala> extension (list: List[Int])
| def average = list.sum / list.size
|
def extension_average(list: List[Int]): Int
scala> List(1, 41).average
val res0: Int = 21
关于scala - 创建未命名的隐式类或函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35758131/