1
隱式轉換假設我有以下方法:Scala的上整數
def main(args: Array[String]): Unit = {
println(Ring(2) + Ring(3) + Ring(-1) + Ring(10))
}
其產生:
([2]左>([-1]左>空值,右>空),右>([3]左> 空,右>([10]左>空值,右>空)))
我想要寫的隱式轉換,其允許我以下面的方式編寫代碼:
def main(args: Array[String]): Unit = {
val r :Ring = 2 + 3 + (-1) + 10
println(r)
}
但以下隱式方法
implicit def intToRing(x :Int): Ring = {
new Ring(x)
}
作品以這種方式該第一它總結了所有的元素,然後創建環什麼生產:
([14]左>空,right-> null)
是否可以實現'不貪心'隱式轉換whic小時會做我想要的?
調用'main'時,您希望得到什麼結果? '環(14)'? –
([2] left->([-1] left-> null,right-> null),right->([3] left-> null,right->([10] left-> null, > null))) –
我不清楚'println(Ring(2)+ Ring(3)+ Ring(-1)+ Ring(10))'是如何打印的([2] left->([ -1] left-> null,right-> null),right->([3] left-> null,right->([10] left-> null,right-> null)))'。你能說更多嗎? –