审议文件bug.scala:
package sandbox
object Foo {
implicit def stringToInt(s: String) = 5
}
import Foo._
class Boo(val a: Int = "foo" / 3) {
val b: Int = "foo" / 3
def c(d: Int = "foo" / 3) = d
}
它界定了默示转换、进口,并在三种略有不同的情况下加以使用。 汇编:
E:progscala est>scalac bug.scala
bug.scala:9: error: value / is not a member of java.lang.String
class Boo(val a: Int = "foo" / 3) {
^
one error found
含蓄的转换似乎在用于违约构造参数时并不可行,而是用于其他假设情景。
现在看着:
package sandbox
object Foo {
implicit def stringToInt(s: String) = 5
}
object dummy
import Foo._
import dummy._
class Boo(val a: Int = "foo" / 3) {
val b: Int = "foo" / 3
def c(d: Int = "foo" / 3) = d
}
我们只是添加了一个空洞的物体并进口了它。 如今,档案没有错误汇编!
我在此看到两种可能性: (1) 我的头指向我。 (2) 汇编者有ug。 谁能证实这一点?
(Using Scala 2.8.1.)