結合在下面的代碼scalas能力所及的範圍,最後一行不起作用:什麼是上隱式的轉換
case class B(v:String)
case class C(s:B,r:B)
object TestImplicits {
implicit def str2b(s:String) : B = B(s)
implicit def in2b(i:(B,B)) :C = C(i._1,i._2)
val t : B = "hello"
val tb : (B,B) = ("hello","there")
val c : C = tb
val cb : C = (B("hello"),B("there"))
val n : C = ("hello","there")
}
我不明白爲什麼不 - 它知道如何轉換(B, B) - > C和String-> B,它可以轉(String,String) - >(B,B)。所有的部分都在那裏,但是如果沒有明確的(String,String) - > C方法,它就無法工作。
有什麼解決方法嗎?
羅賓 - 它完全是,和回答正是我所需要的(即使它看起來很漂亮......)。我應該完全刪除這個問題,還是留下一個指向現有答案的指針?我認爲這個問題更簡潔,但另一個問題的答案是真實的。 –