【发布时间】:2014-08-10 21:44:03
【问题描述】:
在 Julia (0.3.0-rc1) 中,当我 fill 具有复合类型实例的数组并更新单个实例的成员时,数组中的所有实例都会更新。这是预期的行为吗?如果是,我应该如何更改数组中单个元素的值?
有问题的代码:
type Foo
x :: Int
y :: Int
end
arr = fill(Foo(2, 4), 3)
arr[2].x = 5
我期待[Foo(2, 4), Foo(5, 4), Foo(2, 4)],但我得到的是[Foo(5, 4), Foo(5, 4), Foo(5, 4)]。我究竟做错了什么?我是否应该总是更新整个元素,如arr[2] = Foo(5, 4)(给出预期结果)? TIA。
【问题讨论】: