int是有件事我想错了下面的代码片段: -从字符串隐式转换到斯卡拉2.8
object Imp {
implicit def string2Int(s: String): Int = s.toInt
def f(i: Int) = i
def main(args: Array[String]) {
val n: Int = f("666")
}
}
我得到的从2.8编译如下: -
信息:编译1个错误
信息:0警告
... \阶-2.8测试\ SRC \ Imp.scala
错误:错误:管线(4)的错误:类型MISM 1个错误和0个警告
信息完成ATCH;
发现:字符串
要求:?{VAL toInt:?}
注意,隐式转换是不适用的,因为它们是不明确的:
在种类型的目标进出口都方法string2Int(S:字符串)中等
和方法类型为(x:String)的对象Predef中的augmentString scala.collection.immutable.StringOps
可能是从String到?{val toInt:?}的转换函数
implicit def string2Int(s:String):Int = s.toInt
感谢您的快速回复,不幸的是,如果我注释掉我的隐含上面的内容,Predef隐含的内容并不会启动,它只在竞争对手出现时才出现在范围内;-)toInt选项很好,但我正在探索一个由String类型转换的方法,这个方法由一个类型参数确定,其中一个是String,即一个no-op。 – 2009-11-13 00:21:39
明天我得用2.8来试试。我一直使用生产代码中的toInt转换(即使用2.7)! – 2009-11-13 00:23:08