为什么' p'打印最后一个变量的值?

时间:2018-05-17 07:26:47

标签: ruby

我有这段代码:

a=10
b=20
p (a && b)

上面的p语句打印最后一个变量的值。为什么不打印两个变量的值?

2 个答案:

答案 0 :(得分:5)

a是真实的,因此a && b会返回bp接受该参数并打印出来。

答案 1 :(得分:2)

p (a && b)并不意味着"打印a和b"

&&是一名运营商。 a && b(几乎)等同于:

unless a
  a
else
  b
end

如果aanil,则会返回false

nil && 123   #=> nil
false && 123 #=> false

,否则返回b

:foo && 123 #=> 123
:bar && 123 #=> 123

您的代码评估为:

a = 10
b = 20
p (a && b)
p (10 && 20)
p (20)
p 20

为了通过p打印两个值,您必须将它们作为单独的参数传递:

p a, b

# or

p(a, b)

括号是可选的,但如果您使用它们,p(之间就没有空格。