【问题标题】:Why does `p var if var = 0.zero?` raise an error? [duplicate]为什么 `p var if var = 0.zero?` 会引发错误? [复制]
【发布时间】: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


    【解决方案1】:

    查看Local Variables and Methods

    当解析器遇到 分配,而不是分配发生时

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-19
      • 2014-02-06
      • 2011-08-15
      • 2010-09-29
      • 1970-01-01
      • 2011-05-22
      相关资源
      最近更新 更多