gpt4 book ai didi

ruby - { :x => 1} and {:x => 1, :y => nil} in ruby? 之间有什么区别吗

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

编辑:

这里有很多很棒的答案,直到我不知道该选择哪个作为“答案”。根据评论建议,此问题应标记为“题外话”。因此,很抱歉,我不会选择答案,我会把它留在这里,以防其他人有与我相同的问题。


有区别吗:

(1)

a = {
:x => 1
}

(2)

b = {
:x => 1,
:y => nil
}

鉴于 (1),a[:y] 返回 nil对于 (2),b[:y] 也返回 nil


我看到的唯一区别是当我输出时:

(1)

{
:x => 1
}

和 (2)

{
:x => 1
:y => nil
}

最佳答案

有几个不同之处。让我描述两个,这样您就知道该去哪里找:

Hash#fetch如果 key 不存在,则引发错误(或调用 block ,如果提供):

a.fetch(:y)
# >> KeyError: key not found: :y
> a.fetch(:y){ "100" }
# => "100"
b.fetch(:y)
# => nil
b.fetch(:y){ "100" }
# => nil

Hash#map (以及所有其他迭代器)考虑具有 nil 值的键:

a.map{|k, v| [k, v]}
# => [[:x, 1]]
b.map{|k, v| [k, v]}
# => [[:x, 1], [:y, nil]]

关于ruby - { :x => 1} and {:x => 1, :y => nil} in ruby? 之间有什么区别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57195486/

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