gpt4 book ai didi

ruby - 将 ruby​​ hash .default 设置为列表

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:59 24 4
gpt4 key购买 nike

<分区>

我以为我理解了默认方法对哈希的作用...

如果键不存在则给它一个默认值:

irb(main):001:0> a = {}
=> {}
irb(main):002:0> a.default = 4
=> 4
irb(main):003:0> a[8]
=> 4
irb(main):004:0> a[9] += 1
=> 5
irb(main):005:0> a
=> {9=>5}

一切顺利。

但是如果我将默认值设置为空列表或空哈希,我所有都无法理解它的行为....

irb(main):001:0> a = {}
=> {}
irb(main):002:0> a.default = []
=> []
irb(main):003:0> a[8] << 9
=> [9] # great!
irb(main):004:0> a
=> {} # ?! would have expected {8=>[9]}
irb(main):005:0> a[8]
=> [9] # awesome!
irb(main):006:0> a[9]
=> [9] # unawesome! shouldn't this be [] ??

我希望/期待与使用 ||= 运算符时相同的行为...

irb(main):001:0> a = {}
=> {}
irb(main):002:0> a[8] ||= []
=> []
irb(main):003:0> a[8] << 9
=> [9]
irb(main):004:0> a
=> {8=>[9]}
irb(main):005:0> a[9]
=> nil

谁能解释一下这是怎么回事?

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com