ruby - 如果哈希中只有一个特定键具有真值(所有其他值均为假),如何返回真

标签 ruby hash

例如:

options = { fight: true,
 use_item: false,
 run_away: false,
 save_game: false }

我想要一个计算结果为 true 的 bool 表达式,当且仅当 :fighttrue,其余为 false(如上图所示)。

我可以一起解决这个问题,但我正在努力训练自己编写更优雅的 ruby​​。谢谢!

编辑:黑客是:

(options[:fight] == true && options.delete(:fight).values.all {|x| !x})

最佳答案

假设所有值都是严格的 bool 值,它很简单:

options == {fight: true, use_item: false, run_away: false, save_game: false}

See documentation for the == method

关于ruby - 如果哈希中只有一个特定键具有真值(所有其他值均为假),如何返回真,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699531/

相关文章:

ruby - Rails 中的垃圾邮件预防

arrays - Perl:将文件加载到哈希中

c - 嵌入 Ruby 并编译

python - 如果 name = hash 则自动填充

javascript - 在 URL 中使用哈希来运行脚本 onload

ruby-on-rails - 递归修改嵌套哈希中的值

json - 在 Ruby 中通过路径替换和访问嵌套 hash/json 中的值

ruby-on-rails - 使用Rails 5,如何使FriendlyId附加-"count+1"来重复slugs而不是UUID?

Ruby 的三元运算符

ruby - 在 windows 上为 jekyll 安装 rouge code highlighter