【发布时间】:2019-02-08 15:54:51
【问题描述】:
在 Ruby 中,我刚刚注意到:
-
puts true and false返回true,而 -
puts (true and false)和puts false and true都返回false。
这种行为背后的逻辑/原因是什么?
【问题讨论】:
-
可能是因为
puts不是关键字 - 它是一个返回 nil 的方法吗?因为true and false在没有 puts 的情况下给出 nil。 ruby-doc.org/core-2.5.1/Kernel.html#method-i-puts -
从技术上讲,我会说它返回
nil,而不是true或false,并输出true。例如如果您执行语句result = (puts true and false),result将为零。这是因为puts返回nil。nil and false计算结果为nil。 -
第一个不返回
true,它打印true。第二个例子不返回false,它们打印`false。您将返回值与打印值混淆了。 -
@sawa:确实,你是对的。让我感到困惑的是,我使用了一个不输出返回值的在线 IDE……
标签: ruby boolean boolean-logic