在Ruby中做什么|| =做什么

use*_*154 6 ruby

我一直在使用Ruby一段时间了,我一直看到这个:

foo ||= bar
Run Code Online (Sandbox Code Playgroud)

它是什么?

Pet*_*ter 7

这将分配barfoo,如果(且仅当)foonilfalse.

编辑:或者假,谢谢@mopoke.


she*_*edd 7

运算符|| =是表达式的简写形式:

x = x || "默认"

运算符|| =可以是代码的简写:

x ="(某些后备值)"如果是x.nil?

来自:http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators