ActionScript 的 Array 和 Vector 类都有一个 slice() 方法。如果不传递任何参数,则新的 Array 或 Vector 是原始 Vector 的副本(浅克隆)。
“浅克隆”是什么意思?具体来说,有什么区别
Array newArray = oldArray.slice();
Vector.<Foo> newVector = oldVector.slice();
和
Array newArray = oldArray;
Vector.<Foo> newVector = oldVector;
? 另外,如果 Vector 的基本类型不是 Foo,而是像 int 这样简单且不可变的东西怎么办?
更新:
下面的结果是什么?
var one:Vector.<String> = new Vector.<String>()
one.push("something");
one.push("something else");
var two:Vector.<String> = one.slice();
one.push("and another thing");
two.push("and the last thing");
trace(one); // something, something else, and another thing
trace(two); // something, something else, and the last thing
谢谢!♥</p>