抱歉,如果这是一个愚蠢的问题,但我是一个在 ruby 中摸索的 C# 人。
在 ruby 中,我注意到很多人这样做:
do_something(with params) if 1 = 1
那个和这个之间有什么区别(哪怕是轻微的):
if 1 = 1 do_something(with params)
或者是为了更清楚而写的同一件事?
后者在语法上是无效的。你需要写:
if 1==1 then do_something(with params) end
单行条件语句必须始终尾随。和是,有一点不同。试试这些:
bar1 = if foo1=14
foo1*3
end
#=> 42
bar2 = foo2*3 if foo2=14
#=> NameError: undefined local variable or method `foo2' for main:Object
在后者中,Ruby 在引用之后看到赋值,因此将其视为foo2
作为方法而不是局部变量。仅当出现以下情况时,这才是一个问题:
- 您有意在条件中使用赋值(而不是测试相等性),并且
- 这是第一次(按照源顺序)在作用域中分配该变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)