From: "5.5" <5.5@...> Date: 2015-01-14T00:26:16+09:00 Subject: [ruby-list:50058] Re: x ||= 1 きしもとさん,中田さん,ご教示ありがとうございます。 結論としては, 式1 ||= 式2 は 式1 = 式1 || 式2 でもなく 式1 || (式1 = 式2) でもなく,るりまをはじめ,このような式の置き換えで説明している ものはすべて誤り,ということですね? そして,こいつが意味するところは, 式1 が未定義もしくは偽のとき 式1 に 式2 の評価結果を代入し  その値を全体の評価値とする。  式1 が真のとき,その評価結果を全体の評価値とする。 ということでよろしいでしょうか? それから,ローカル変数がどこから定義済とみなされるかは,いまま で何となく行単位で考えてしまっていましたが,実際にはもっと細か く,見た目で代入式が存在する箇所以降であると考えていいのでしょ うか。 たとえば, x = 1 if x は,if 修飾子の x よりも左に x = 1 があるので NameError には ならないが, if x then x = 1 end は x = 1 のほうがあとにあるので,NameError になる,と。 -- 5.5@moji.gr.jp