少於 1 分鐘閱讀

一般變數指定

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

  1. http://stackoverflow.com/questions/4157399/how-do-i-copy-a-hash-in-ruby
  2. http://motion-express.com/blog/ruby-same-object-or-duplicate

更新時間:

留言