1
我把散列中的方法:|| =與散列包裹在一個方法
def example
@_hash ||= {:a => {}, :b => {}}
end
我稱之爲散列從另一種方法,和添加的鍵/值對所述子散列像這樣:
example[:a][:c] = "test"
這將哈希更改爲:
{:a => {:c => "test"}, :b => {}}
我不知道爲什麼我仍然可以通過再次調用該方法,像這樣更新:c
哈希:
example[:a][:c] = "test2" #=> {:a => {:c => "test2"}, :b => {}}
這很奇怪,因爲如果@_hash
不是nil
/false
等號/或運營商不應該再次分配值。所以我假設我們做example.[]= method
來更改單個散列鍵/值的值。如果這是真的,那麼爲什麼到了,當我從哈希方法去除||=
像這樣:
def example
@_hash = {:a => {}, :b => {}}
end
沒有什麼改變?
好的我明白了 – Steve007