【发布时间】:2012-07-25 12:21:43
【问题描述】:
在重构一些 Rails 代码时,我在 ruby 中遇到了一些奇怪的语法。
给定以下方法
def get_value
42
end
为什么会这样?
if value = get_value
puts value
end
虽然没有?
puts value if value = get_value
后者给出错误:undefined local variable or method `value' for main:Object (NameError)。我以为这些表达是平等的?当 if 块在 puts 之前求值时,value 不应未定义。
【问题讨论】:
-
我知道这是一个副本但找不到它
-
@DGM:我也有同样的感觉!我刚刚花了最后 9 分钟寻找一个骗子,但似乎没有出现。
-
This one 也应该有帮助。
标签: ruby