是否有可能在Scala中创建一个未命名的隐式类或函数?在Scala中创建未命名的隐式类或函数?
举例来说,如果我有以下隐含类:
implicit class ListIntExtras(list: List[Int]) {
def average = list.sum/list.size
}
我宁愿可以将其定义为像implicit class _(list: List[Int])
因为类ListIntExtras
的名称实际上从未在任何地方使用。
而且同样适用于隐函数:
implicit def intToDouble(i: Int): Double = i.toDouble
我想,而不是定义方法implicit def _(i: Int): ...
因为,再次,我从来不引用其实际名称。
我知道隐含的val
这是可能的。例如,您可以执行implicit val _ = new Config()
,这很有用,因为将其命名为_
以外的东西似乎只是一种浪费,因为它永远不会被名称引用。
请注意'隐式val _ = new Config'确实有效,只是不在试图绑定符号的REPL中。无论如何,如果你这样做,隐式没有找到,因为它没有符号。 –
它看起来像'隐式val _'实际上工作。我已经在我的项目中使用了它,它使用了case jquery类的'Format'属性的Play json库('implicit val _ = Json.format [A]')。删除那给出了一个错误,说它无法找到A类的格式。 – socom1880
@ socom1880我修复了这个部分,但并没有改变整体的答案。 val仍然有一个标识符。 –