The Pragmatic Ball boy

iOSを中心にやってる万年球拾いの老害エンジニアメモ

【Ruby最低限の知識編】Ruby素人が「たのしい開発スタートアップRuby」を実践

結構ざっくりとした説明しか書かれていませんが、他の言語を使ったことがあると用意に理解できると思うので、短い割にちょうど良い程度の説明の仕方だなと思いました。
ただこれまで経験したことのないものがポンとでてくるとちょっと理解に苦しみましたがそこはちゃんとした言語の本を読んで、ここではこんなもんかとさらっと流すほうがいいかなと。

以下感想。

・変数を使う
 いたって普通
・四則演算
 いたって普通
・すべてがオブジェクト
 Java,C系統のようなプリミティブはない。動的型付けだとそうですよね
・文字列
 ' ' or " "
   + で連結できて楽
 #{ } で囲めば文字列の中に変数の値とかをぶっこめる
メソッド呼び出し
 オブジェクト.メソッド JavaC#とかと同じ
 BOOLを返すメソッドは最後に ? をつける。いままではisとかhasのプレフィックスつけてたので新鮮。言語としてお作法が決まっているのはいいこと。
 メソッド() の()は略していいようだ(ただし()なしで解釈できる場合に限る・・)
・配列
 [] の中に型とか気にせずにつっこめる
 +で配列もつなげれる
 ーで差分をとれる
 * で繰り返しができたり
・ハッシュ
 { key => value , , }
・シンボル
 軽く理解に苦しむ。
 keyに文字列よりはシンボルを使うようだ、書き方がJSONっぽい
・コメント
 #
・真偽
 true, false, nil
・条件分岐
 ここはちょっと気持ち悪い、なぜこうしたし。
 elsifをタイポしそうだ・・
   switchではない

 if
   elsif
   else
   end

 case
   when
   when
 else
   end

   ifの1行での記載は他の言語でもみたことないしかなり読みづらい。これ嫌い。
 でもifを前にもってきても{}つけないから余計見づらいのか、なんなのか。
 だいたい1行で書く系は可読性犠牲にしているのでしょうがないか。

・繰り返し処理とイテレーション
 for文によるfor eachの書き方はC#,Objective-Cとかと同じ。

 each do ブロック end でなんぞこれ・・・
 each { | | 処理 } のほうが初見では理解できた。eachの引数に{}渡して毎回{}内が実行されるんだろうなと。
 
 ブロックをObjective-Cのblocksと同じと考えることで理解。
 Objective-Cだと ^(引数) { 処理 } なので
 rubyは | 引数 | 処理 ってことなんすね、たぶん。