>>483
> これは str が未定義なので
あ、わかりにくくて申し訳ない
||= の自己代入はインスタンス変数でよく見る書式なんだけど、
これ、実は、ローカル変数でも動作するんよ

irb> str2
NameError: undefined local variable or method `str2' for main:Object
from (irb):2
from :0
irb> str2 ||= '文字列'
"\312\270\273\372\316\363"

これってなんでかなと思って質問した次第
もしマニュアル通りの str || (str = '文字列') という内部動作だったら、
最初の左辺の str の評価で NameError が出そうだよね?