式修飾子(if修飾子、unless修飾子)
「if」文を使うことで条件に応じて行う処理を実行することが出来ますが、次のような記述方法も可能です。
真の時に実行する式 if 条件式
このような構文を「if」修飾子といいます。上記では条件式が真の場合に「if」の左辺の式を実行します。
これは「if」文で次のように記述した場合と同じです。
if 条件式 then 真の時に実行する式 end
「if」修飾子は実行する処理を先に記述しているだけです。ただ、先に記述することで何を実行しようとしているのかが分かり易くなる場合があります。また簡潔に記述することもできます。例えば次のようにデバック用の出力を行う場合を考えてみます。
print("num = ", num) if debug
変数「debug」が真の場合だけ変数「num」の値を出力しています。次のように「if」文を使って同じ事が記述できますが、より簡潔に記述でき何をしようとしているのかも明確に出来ます。
if debug then
print("num = ", num)
end
なお「if」修飾子と同じように「unless」修飾子も用意されています。
偽の時に実行する式 unless 条件式
「unless」修飾子は条件式が偽の場合に左辺の式を実行します。
サンプルプログラム
では簡単なプログラムで確認して見ます。
#! ruby -Ku
num = 20
pref = "Tokyo"
debug = nil
print("num = ", num) if debug
debug = "on"
print("pref = ", pref) if debug
上記のプログラムを「test11-1.rb」として保存します。文字コードはUTF-8です。そして下記のように実行して下さい。
( Written by Tatsuo Ikura )
RubyLife