' || ='之间有什么区别?和' ='在Ruby中

时间:2014-12-12 04:45:47

标签: ruby-on-rails ruby operators

我最近被分配到一个新的Rails项目,在该项目中我可以看到使用||=而不是=来对变量进行分配。任何人都可以帮助我理解这是否是Rails中的正确方法或良好实践以及使用它的优点/缺点?

e.g。

a ||= b + c

bc是整数)

感谢您的帮助:)

1 个答案:

答案 0 :(得分:4)

使用:

a = b + c
无论如何,

a都会设置为bc的总和。

使用:

a ||= b + c

如果当前设置为nilfalse,则只会将其设置为总和。

这是一个微妙的差异,但Ruby人应该学习的东西。来自类C语言的人经常将a ||= x视为:

a = a || x

但事实并非如此。相反,它是:

a || a = x

(如果a已设置为非nil/false值,则实际上未执行任务。

Ruby Inside更深入地探讨了问题here