加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

使用Ruby中的or-operator简化“任意”检查

发布时间:2020-12-17 04:01:07 所属栏目:百科 来源:网络整理
导读:如何简化以下检查?… if node[:base][:database][:adapter].empty? || node[:base][:database][:host].empty? || node[:base][:database][:database].empty? || node[:base][:database][:port].empty? 喜欢的东西 required_keys = { :adapter,:host,:databa
如何简化以下检查?…

if node[:base][:database][:adapter].empty? || node[:base][:database][:host].empty? || 
  node[:base][:database][:database].empty? || node[:base][:database][:port].empty?

喜欢的东西

required_keys = { :adapter,:host,:database...etc...} 
required keys - node[:base][:database] == []

这种语法有点偏,但基本上从所需的密钥集中减去了你的密钥.如果您的集合中包含所有必需的键,则结果应为空.

我不确定正确的语法? .任何帮助,将不胜感激

解决方法

required_keys = [:adapter,:database ]
if required_keys.any?{|x| node[:base][:database][x].empty?}
  #code here
end

或者你也可以这样做:

node[:base][:database].values_at(*required_keys).any?(&:empty?)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读