シンタックスシュガーとは?
定義*1
言語を読み書きしやすくするための、機能的には本質でない構文。それができなくても他の構文で同じことを表現できるもの。構文糖とも.
つまりどいいうこと
本当は他の構文で書くことができるけれど、視認性を高めるために、別の方法を使って記述したコードのこと。見やすさ重視ってことですね。
試しにコードを書いてみる
シンタックスシュガー21選 - critbitの日記を見て、「15 - Nested Ternary Operators(ネスト三項演算子)*2」が今調べていることに近いので、21 Ruby Tricks You Should Be Using In Your Own Codeからコードを拝借して走らせてみる*3。
qty = 1 var = qty == 0 ? 'none' : qty == 1 ? 'one' : 'many' p var #上記の式は次の式と同値である var = (qty == 0 ? 'none' :(qty == 1 ? 'one' : 'many')) p var
実行結果はこちら。
# ruby example.rb "one" "one"
シンタックスシュガーなので別の構文で記述する
上記のコードを別の構文で書き換えると次のとおり記述できる。
qty = 1 if qty == 0 then var = 'none' elsif qty == 1 then var = 'one' else var = 'many' end puts var
実行結果はこちら
# ruby ex101.rb one