我最近被分配到一个新的Rails项目,在该项目中我可以看到使用||=
而不是=
来对变量进行分配。任何人都可以帮助我理解这是否是Rails中的正确方法或良好实践以及使用它的优点/缺点?
e.g。
a ||= b + c
(b
和c
是整数)
感谢您的帮助:)
答案 0 :(得分:4)
使用:
a = b + c
无论如何, a
都会设置为b
和c
的总和。
使用:
a ||= b + c
如果当前设置为nil
或false
,则只会将其设置为总和。
这是一个微妙的差异,但Ruby人应该学习的东西。来自类C语言的人经常将a ||= x
视为:
a = a || x
但事实并非如此。相反,它是:
a || a = x
(如果a
已设置为非nil/false
值,则实际上未执行任务。
Ruby Inside更深入地探讨了问题here。