それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Rubyで変数の初期化

ruby で変数が初期化されてない時に、デフォルト値を代入しようとした。

a = ARGV[0]
a ||= 100

もっとスマートに書けないかなぁ。

a = 100 || b

でもこれを逆に書くと動かないんだ。

a = b || 100

NameError: undefined local variable or method `b' for main:Object

もちろん、変数がが初期化済みならエラーは出ない。逆もエラーにならない。

b = nil
a = 100 || b #=> 100

b = nil
a = b || 100 #=> 100


ということで || 演算子(なんて読むの?defined-or ? )で初期化をするときは、定義済み変数を使うこと。