Ruby block - 除非和如果比较

标签 ruby block

我对 ruby​​ 语言中的 unless 和 if block 有疑问。如果我问这个问题那么愚蠢,请原谅。

假设我们有两个 bool 变量 a = trueb = true

条件:我想检查它们是否都为真。使用 if 语句,我们可以如下所示进行检查。

if a == true && b == true
  print "Hai"
end

疑问:我可以使用下面给出的语句代替上面的语句吗?

unless a == false && b == false
  print "Hai"
end

上面给出的两个 block 会给出相同的结果吗?

最佳答案

代替

if a == true && b == true
  print "Hai"
end

你可以写

if a && b
  print "Hai"
end

这是一样的

unless !(a && b)
  print "Hai"
end

(使用 De Morgan's laws )与

unless !a || !b
  print "Hai"
end

关于Ruby block - 除非和如果比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20700712/

相关文章:

ruby-on-rails - Postgres 适配器

ruby - 在 gem 总数中找不到 'sass'

ruby - pig : java. lang.NoClassDefFoundError: org/jruby/embed/ScriptingContainer

ruby - 在扩展自身的模块中的实例方法中调用单例方法

objective-c - 如何在 block 中修改 ObjC 方法的参数?

iOS ARC block 保留周期

ruby-on-rails - 你如何从 Rails 中的 View 调用方法?

ios - 如何在 [nsthread detachNewThreadSelector] 中使用 block

erlang - Erlang中的begin...end是做什么用的?

c - sendto() 缓冲区满时阻塞,如何解决?