[Ruby] hash複製
一般變數指定
a = 10
b = a
b += 10
#=> a = 10
#=> b = 20
hash複製
#失敗範例
a = { name: 'ivan', age: 18 }
b = a
b[:age] = 30
#=> a = { name: 'ivan', age: 30 }
#=> b = { name: 'ivan', age: 30 }
#成功範例
a = { name: 'ivan', age: 18 }
b = a.clone
b[:age] = 30
#=> a = { name: 'ivan', age: 18 }
#=> b = { name: 'ivan', age: 30 }
Reference
- http://stackoverflow.com/questions/4157399/how-do-i-copy-a-hash-in-ruby
- http://motion-express.com/blog/ruby-same-object-or-duplicate
留言