【发布时间】:2015-06-15 18:45:03
【问题描述】:
我最近收到了一个编程难题:
p var if var = 0.zero?的输出是什么(问号是代码的一部分)。
我的假设是首先评估0.zero?,返回true,然后返回var = true,这会将var设置为true并返回true,因此p var if true将打印@987654329 @。
但事实并非如此。 Ruby 报错undefined local variable or method `var' ...
p var if var = 0.zero?
# => NameError: undefined local variable or method `var' for main:Object
from (irb):19
from /usr/bin/irb:11:in `<main>'
p var if var = (0.zero?)
# => true
p var if (var = 0).zero?
# => 0
p var if (var = 0.zero?)
# => true
p var if var = 0
# => (irb):23: warning: found = in conditional, should be == 0
这是怎么回事?
【问题讨论】:
标签: ruby