Rubyでは(Cなどとは異なり)制御構造は式であって、何らかの値を返すものがあります
Ruby 2.0.0 リファレンスマニュアル > 制御構造
PHP脳な自分には最初ピンとこなかったのでメモ代わりに。
if
1
2
3
| mes = if (true) then "hoge" else "fuga" end
puts mes
# hoge
|
1
2
3
4
| <?php
if (true) { $mes = 'hoge'; } else { $mes = 'fuga'; }
echo $mes;
// hoge
|
case
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| age = 29
mes = case age
when 1..9
"child"
when 10..19
"teenager"
when 20..29
"adult"
else
"other"
end
puts mes
# adult
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| <?php
$age = 29;
switch ($age) {
case in_array($age, range(1, 9)):
$mes = 'child';
break;
case in_array($age, range(10, 19)):
$mes = 'teenager';
break;
case in_array($age, range(20, 29)):
$mes = 'adult';
break;
default:
$mes = 'other';
break;
}
echo $mes;
// adult
|
Rubyの方がシュッとしてます。
caseについては下記が大変勉強になりました。
Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい