读书人

Ruby 奇怪的赋值有关问题

发布时间: 2012-08-22 09:50:35 作者: rapoo

Ruby 奇怪的赋值问题

结论: 赋值 非 拷贝

?

Ruby1.9.3

?

例1

?

?

a = [1,2,3]

b = a ? ? ? ? ? ? #只是引用,不是拷贝

a << 4

puts a #=> [1,2,3,4]

puts b #=> [1,2,3,4]

?

?

例2

?

?

a = [1,2,3]

b = a ? ? ? ? ? ??

b << 4

puts a #=> [1,2,3,4]

puts b #=> [1,2,3,4]

?

例3

?

a = [1,2,3]

b = a

b = [] ?#=> []

a ?#=> [1,2,3] ? ? ?#赋空值的时候,两者是不同步的

?

原因: b = [] 操作是新建一个变量b,这个b已经不是刚才的b,可通过b.object_id分别这两个变量

?

?

?

?

读书人网 >Ruby Rails

热点推荐