心はいつもAirPucci (空元気でもいいから)

毎日がPucciを着ているような気分

初めてのRuby2章「配列とハッシュ」

      2014/03/16


Railsだってgemの一種!ってことで、Rubyの文法からちゃんとやりたいです。るりまにあったとおり、初めてのRuby->メタプログラミングRubyの流れで勉強しようと思います。

1章は「ようこそ、Rubyのある生活へ」なので、
2章「配列とハッシュ」から。

2.1 配列

配列は個々のオブジェクトを順番に並べたもの。
配列の入れ物に、オブジェクトの参照を順番に並べたもの。

例2-1

#配列hairetsuに"happy"の参照元strを並べて配列にする。
str = "happy"
p hairetsu = [str,str]

#=> ["happy", "happy"]

#”happy”の文字を書き換えると、配列hairetsuも書き換えたものになる

str = "happy"
str[2] = "c"
str[3] = "k"
p hairetsu #=> ["hacky", "hacky"]

文字列自体も配列ってことですね。

2.1.1 配列の構築

配列はリテラル記法で書く。要素を,で区切って[]でくるむ。

2.1.2 添字参照

添字参照って何よ?
配列は0から順番になっていて、順番を数字指定で参照できる。

kudamono = ["apple", "banana", "orange"]

p kudamono[2] #=> "orange"
p kudamono[0] #=> "apple"
p kudamono[1,2] #=> ["banana", "orange"]

配列の中に文字を書きたい時は””か”でくるむんですね。
添字はマイナス値も指定できる。
添字の後に,で数字を書くと、とってくる数が指定できる。

とってくる数字ではなく、番号を指定して、0番から100番まで全部、という書き方もできる。

kudamono = ["apple", "banana", "orange"]

p kudamono[0..3] #=> ["apple", "banana", "orange"]

2.1.3 添字代入

添字を使って配列オブジェクトの要素を更新できる。

kudamono = ["ringo","banana","nashi"]
kudamono[0] = "apple"
p kudamono

#=> ["apple", "banana", "nashi"]

2.1.4 配列の比較

配列は==で比較できる。要素と順番が全部一致のときだけtrue

2.1.5 様々なメソッド

配列自体がArrayクラスのインスタンス。なのでメソッドが使える。

kudamono = ["ringo","mikan","nashi","banana","hassaku"]
p kudamono.length #=> 5
p kudamono.sort
#=> ["banana", "hassaku", "mikan", "nashi", "ringo"]

2.1.6 ブロック付きメソッドとイテレータ

配列オブジェクトはブロック付きメソッドを沢山持っている。で、ブロック付きメソッドって何よ?だけど、代表がeach。 ||っていうブロック付きのあれ。

kudamono = ["banana", "hassaku", "mikan", "nashi", "ringo"]

kudamono.each do |i|
 print i + " , "
end

#=> ["banana", "hassaku", "mikan", "nashi", "ringo"]

インデックス付きの繰り返しeach_with_index というのがあって、添字と一緒に出力できるそうですが、いつ使うのかわからん。

写像(map)はDBのviewみたいなもんじゃないけど、
配列の処理結果を別の配列として作ることができる。

kudamono = ["banana", "hassaku", "mikan", "nashi", "ringo"]

saisho = kudamono.map{|item| item[0,2]}
p saisho

#=> ["ba", "ha", "mi", "na", "ri"]

ソート、選択
{}の中に式を書いて要素を並べ替え、抽出できる。ブロックを扱う式の書き方がまだよくわからん。

次は2.2 ハッシュから。

【送料無料】初めてのRuby [ Yugui ]

【送料無料】初めてのRuby [ Yugui ]
価格:2,310円(税5%込、送料込)

 - テクニカル ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

no image
RailsTutorial4.0を高速で復習する。3.2.2章。

静的ページにaboutというページを追加するのですが、rails gを先にするの …

no image
editとupdate

ruby on rails3プリケーションプログラミングの本の内容をruby2. …

RailsTutorial4.0を高速で復習する。11.1.4章。

11.1.4フォローしているユーザー 、です。 followed_usersとf …

no image
RailsTutorial4.0を高速で復習する。10.3.3章。

10.3.4マイクロポストを削除する、です。 仕様 マイクロポスト個別に削除でき …

吉瀬美智子さんが美しすぎて、新サイト作りました

以前からやりたいと思っていたのですが、吉瀬美智子さんが美しすぎてやる気がでました …

no image
RailsTutorial4.0を高速で復習する。6.2.3章。

6.2.3長さを検証する、です。空データを拒否した次は、入力できるデータ長の制限 …

no image
RailsTutorial4.0を高速で復習する。9.3.4章。

9.3.4パーシャルのリファクタリング、です。 テストパスしているのでリファクタ …

no image
RailsTutorial4.0を高速で復習する。10.3.2章。

10.3.2マイクロポストを作成する、です。 テストを書く micropostの …

初めてのRuby8章「オブジェクトとクラス」

2章「配列とハッシュ」の次はいきなり8章「オブジェクトとクラス」に行ってしまいま …

RailsTutorial4.0を高速で復習する。7章

第7章ユーザー登録、です。 6章でuserモデルを作ったので、7章はwebでの登 …