我正在阅读scaladocs,只是想知道直接赋值和.clone方法之间的区别.
val a=Array(1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)
情况1:
val b=a
Run Code Online (Sandbox Code Playgroud)
案例2:
val b=a.clone()
Run Code Online (Sandbox Code Playgroud)
Dan*_*ral 13
考虑一下:
scala> val a=Array(1,2,3,4,5)
a: Array[Int] = Array(1, 2, 3, 4, 5)
scala> val b = a
b: Array[Int] = Array(1, 2, 3, 4, 5)
scala> val c = a.clone()
c: Array[Int] = Array(1, 2, 3, 4, 5)
scala> b(0) = 0
scala> c(1) = 1
scala> a
res2: Array[Int] = Array(0, 2, 3, 4, 5)
scala> b
res3: Array[Int] = Array(0, 2, 3, 4, 5)
scala> c
res4: Array[Int] = Array(1, 1, 3, 4, 5)
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,当你这样做val b = a的话a,并b指向同一个对象.更改对象后,两者都会看到更改.
另一方面,克隆数组时,会生成具有相同内容的新数组.更改此新阵列不会更改旧阵列.
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |