1)根據您的示例,您甚至不需要.copy
。
你有
var TupleOne=("One", 2, true)
你期待
var TupleTwo = ("Two","new",false)
那裏有沒有什麼要複製tupleOne
。
的另一件事是,你是從,這是Tuple
太
實例複製第一個元素,但變異第二個元素複製實例.copy
收益類型。
scala> val tupleOne = ("copyme", "dont-copy-me")
tupleOne: (String, String) = (copyme,dont-copy-me)
scala> val tupleTwo = tupleOne.copy(_2 = "I'm new")
tupleTwo: (String, String) = (copyme,I'm new)
2),我們去你的榜樣,
scala> val TupleOne=("One",2,true)
TupleOne: (String, Int, Boolean) = (One,2,true)
爲了讓您預期的結果,你必須改變如下這是沒有意義的,因爲你要複製什麼的TupleOne
每個元素。
scala> TupleOne.copy(_1= "Two", _2 = "new", _3= false)
res3: (String, String, Boolean) = (Two,new,false)
3)再次,由於Tuple.copy
返回Tuple
,你TupleTwo
是Tuple
內Tuple
。 (#2是你可能尋找)
scala> var TupleOne=("One",2,true)
TupleOne: (String, Int, Boolean) = (One,2,true)
scala> var TupleTwo=("Two",TupleOne.copy(_1 = "new"),false)
TupleTwo: (String, (String, Int, Boolean), Boolean) = (Two,(new,2,true),false)
正如您指出的那樣,根據示例創建了一個新元組。要從元組中調用所需的元素,應該以嵌套的方式調用元組。(TupleOne._1) var TupleTwo =(「Two」,TupleOne.copy(_1 =「new」),false爲false TupleOne =(「One」,2,true) println(TupleOne._1) var TupleTwo = ) println(TupleTwo._2._2)。現在答案是按需要的。 – NeoWelkin