0
寻找对变量有两个测试,这可能不是在rails视图中定义的。ruby/rails中的短路评估与定义?
<% if defined(:var) && var.present? %>
<%= var.value %>
<% end %>
然而,当没有定义var
这被投掷undefined local variable or method
错误。我假设的Ruby/Rails会短路的第一个表达式,而不是试图评估第二,类似蟒蛇
>>> a = False
>>> a and b
False
>>> b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'b' is not defined
有什么理由短路前述的第二个评价是什么?