可以以某种方式定义包对象,以便使用语法糖调用它的apply吗?

时间:2017-11-03 08:38:11

标签: scala packages

让我们有两个来源:

Library/package.scala

package object Library {
  def apply(name: String) = name.reverse
}

Main.scala

object Main extends App {
  println(Library.apply("reverse me")) // works
  println(Library("reverse me")) // error: package Library is not a value
}

有什么方法可以解决这个问题吗?我可以在包对象或其他地方添加一些东西,以便我可以使用语法糖直接调用对象,而不必明确指定应用吗?

1 个答案:

答案 0 :(得分:0)

经过一些实验后,我发现我可以使用一个同名的辅助对象,但是包含在不同的包或对象中,如下所示:

object LibraryApply {
  object Library {
    def apply(name: String) = _root_.Library.apply(name)
  }
}
import LibraryApply._
相关问题