心はいつも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

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

  関連記事

WindowsキーボードをMacで使う

キーボード難民です。Mac miniでApple純正のキーボードを使っていました …

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

4.2文字列(string)とメソッド、です。 ここからはrubyの文法について …

Railsを立ち上げる

RubyのアップデートとRailsのインストールが無事終わったので、いよいよRa …

民●党批判したら検索順位が落ちたのか?

このブログ、airpucciのドメインも元のwww.airpucci.comに戻 …

GitにRailsプロジェクトをpushする

HomebrewerでGitをインストールし、Rails 3.2やRails4. …

no image
RailsTutorial4.0を高速で復習する。3.5章。最後の問題。

3.5演習、3もんめ、最後の問題です。 3.(上級者向け)「Heroku pag …

no image
「Follow me」バッジのつけ方。

ブログの横についている「Follow me」バッジ。いろんな方がつけているのを見 …

no image
accepts_nested_attributes_for

everydayRailsやっていて、 phoneモデルのテストのところで ac …

RailsTutorial4.0を高速で復習する。またまた5.1.2章の途中から。

RailsTutorial4.0を高速で復習する。5.1.2章の途中から。です。 …

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

7.3ユーザー登録失敗、です。 ここでは、エラーメッセージの表示を実装します。 …