ruby 基本的な構文とか
2011/10/06
「()」や「{}」などが省略されるしメソッドに「?」がついたりするので慣れるまでが大変。
if文のサンプル
基本は「[条件A]が[真]のとき[処理A]をし、[条件B]が[真]のとき[処理B]をし、[その他]は[処理C]をする」
- if a > b
- [処理A]
- elseif b < a
- [処理B]
- else
- [処理C]
- end
[条件A]が[真]のとき[処理A]を実行
※[条件A]を「a == b」とする
タイプ1
- if a == b
- [処理A]
- end
タイプ2
- [処理A] if a == b
[条件A]と[条件B]が[真]のとき[処理A]を実行
※[条件A]を「a == b」、[条件B]を「c == b」とする
タイプ1
- if a == b and c == b
- [処理A]
- end
タイプ2
- [処理A] if a == b and c == b
[条件A]が[真]のとき[処理A]、[偽]のとき[処理B]を実行
※[条件A]を「a == b」とする
タイプ1
- if a == b
- [処理A]
- else
- [処理B]
- end
タイプ2(三項演算子)
- (a == b)? [処理A]: [処理B];
※「()」は省略できるけど、優先順位の兼合いもあるので「()」はつけた方が無難かも。
[変数A]が[真]のときは[変数A]の内容、[偽]のときは[変数B]の内容を[変数C]に代入
タイプ1
- if [変数A]
- [変数C] = [変数A]
- else
- [変数C] = [変数B]
- end
タイプ2
- [変数C] = [変数A] || [変数B]
複合技的なif文
三項演算子との組み合わせ。
- A = B? C: D || E
※「B? C: D」の部分が三項演算子になる。
ループのサンプル
メソッド型(?)と関数型(?)みたいな感じで2種類ある。
メソッド型(?)のループ
配列のループはeachメソッドを使う。
※[val]に「arys[0]」や「arys[1]」とかをいれる。
タイプ1
- [配列].each do |val|
- [処理]
- end
タイプ2
- [配列].each { |val|
- [処理]
- }
タイプ3
- [配列].each |val|
- [処理]
- end
※それぞれeachメソッドの引数に[処理]をセットするような感じ。
※他にもtimesメソッドとか色々ある。
関数型(?)のループ
「制御構造」と呼ばれるヤツらしい。
forやwhileも存在するけどeachメソッドで事足りる感じ?