据我所知,隐式类用于为现有类型提供扩展方法,或者说丰富来自其他库或 API 的类型。但是,我正在玩耍并尝试了这个:
case class Person(firstname : String , lastName:String ) {
def x() = {
println("x")
}
}
implicit class Foo(x : Person) {
def y() = {
println("y")
}
}
Person("","").y()
我只想y()
从这个文件中访问,而在其他地方未定义。
我本可以添加一个从类 Person 继承的私有类,从而y()
在其中添加方法。[1]
所以我的问题是:除了这违背了隐式类本质上创建的原则之外;幕后到底发生了什么,这是否有任何应该注意的性能问题(与解决方案 1 相比)?