在Scala中,可以在包对象内部定义apply方法,并像函数一样使用包对象吗?
例如,我将包对象定义为:
package io.foo
package object f {
def apply[X](x: X): String = x.toString
}
然后,在其他文件中,我想像这样使用它:
import io.foo._
val s = f(5)
但是,执行此操作时,会出现一个编译错误,提示package io.foo.f is not a value
尽管编译如下:
import io.foo._
val s = f.apply(5)
还有,这样做有什么缺点吗?