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