ruby - 如果键不存在创建默认值

标签 ruby hash

任何人都可以告诉我一种 ruby​​ 方法来检查散列中是否存在键,如果不存在则给它一个默认值。我假设有一个使用 unless 的衬垫来执行此操作,但我不确定要使用什么。

最佳答案

如果你已经有了哈希,你可以这样做:

h.fetch(key, "default value")

或者你利用一个不存在的 key 将返回 nil 的事实:

h[key] || "default value"

要创建具有默认值的散列,这完全取决于您想要做什么。

  • 独立于 key ,不会被存储:

    h = Hash.new("foo")
    h[1] #=> "foo"
    h #=> {}
    
  • 依赖于 key 并将被存储:

    h = Hash.new { |h, k| h[k] = k * k } 
    h[2] #=> 4
    h #=> {2=>4}
    

关于ruby - 如果键不存在创建默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9108619/

相关文章:

ruby - 在 RHEL 上安装 rmagick gem 时出错 - 错误 : Failed to build gem native extension

ruby - Nanoc布局编译规则

ruby - 当我尝试访问在 ruby​​ 中转换为散列的 json 中的数据时,如何将字符串转换为整数?

ruby-on-rails - 如何在 Rails 中生成唯一的请求 ID?

ruby-on-rails - 根据多个条件中的任何一个过滤 Ruby 对象数组?

java - 将 HTTP post 从 ruby​​ 转换为 java 或 groovy

security - 如何存储和验证从 PIN/密码中随机选择的数字

algorithm - 多次散列密码有什么好处?

ruby - 如何使用正则表达式和反向引用编写 Ruby switch 语句(case...when)?

php - 使用 crypt() 对数据库进行哈希处理后 PHP 登录脚本出现问题