gpt4 book ai didi

ruby 哈希 : return the first key value under which is not nil

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

假设我有一个散列

hash = {a:1, b:false, c:nil}

& 某处的一系列键:[:c, :b, :a]。在 != nil 下返回这样的键值是否有 Ruby 惯用语?

目标

[:c, :b, :a].select {|key| hash[key] != nil}.first     # returns :b

似乎太长了。

最佳答案

我认为 Enumerable#find可能有效:

find(ifnone = nil) { |obj| block } → obj or nil
find(ifnone = nil) → an_enumerator

Passes each entry in enum to block. Returns the first for which block is not false. If no object matches, calls ifnone and returns its result when it is specified, or returns nil otherwise.

If no block is given, an enumerator is returned instead.

在你的情况下,它会返回第一个不是nil的 block :

p %i[c b a].find { |key| !{ a: 1, b: nil, c: nil }[key].nil? } # :a
p %i[c b a].find { |key| !{ a: 1, b: 1, c: nil }[key].nil? } # :b

关于 ruby 哈希 : return the first key value under which is not nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50191247/

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