在以下代码片段(使用 scala 2.10.3)中, TestClass1编译时出现错误“ value toInt is not a member of String ”,但TestClass2编译良好:
trait TestTrait {
implicit def test: (String => Int)
}
object TestClass1 extends TestTrait {
implicit val test = (value: String) => value.toInt
}
object TestClass2 extends TestTrait {
implicit def test = (value: String) => value.toInt
}
通过提供toInt函数的augmentString()的StringOps隐式转换未在TestClass1中应用,但在TestClass2中应用良好。有人可以告诉我为什么会这样以及如何保持测试val而不是def吗?