Ruby块 - 除非和比较

Raj*_*tan 0 ruby block

我怀疑除非和ruby语言中的块.如果我愚蠢地问这个问题,请原谅.

让我们假设我们有两个布尔变量a = trueb = true.

条件:我想检查它们是否都是真的.使用if语句我们可以检查如下所示.

if a == true && b == true
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)

怀疑:我可以使用下面给出的那个,而不是上面的陈述吗?

unless a == false && b == false
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)

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

tes*_*ssi 5

代替

if a == true && b == true
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)

你可以写

if a && b
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)

这是一样的

unless !(a && b)
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)

这与(使用德摩根定律)相同

unless !a || !b
  print "Hai"
end
Run Code Online (Sandbox Code Playgroud)