Dan*_*uis 9

它主要用作将变量初始化为某个值的缩写形式(如果尚未设置).

将该陈述视为回归x || (x = y).如果x有一个值(除了false),只有左边的值||将被评估(因为|| 短圈),并且x不会被重新分配.但是,如果xfalsenil,将评估右侧,将设置xy,并将y返回(赋值语句的结果是右侧).

有关更多讨论,请参见http://dablog.rubypal.com/2008/3/25/a-short-circuit-edge-case.