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

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

  関連記事

詳解 Objective-C 2.0 第3版

Rubyの言語仕様を勉強する傍ら、Objective-Cも言語仕様ベースで勉強し …

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

巷にRails4本がなく、Rails3本をRails4でやってみようとしたところ …

no image
ToDoの管理方法

東大生はノートがきれいだとか、、 きれいに書いている暇があったら、頭に書いて覚え …

no image
いまだにユビキタスなSONYとクラウドに向かうApple

PS3のトルネが良さそう@ヤマダ電機。PS3本体とチューナーの2台になってスッキ …

ブログをアプリを使ってiPhoneから更新

この前の投稿と、前の前の投稿はiphoneから行いました。ノートPCだとブログ投 …

no image
Vaio Pよりも軽く感じる?MacBookAirとお出かけ

Vaoi Pを手放し、iPadも手放し、UQ Wimaxは解約し、DellのWi …

no image
Railsの%

Rubyの%じゃなくてRailsの%です。 RailsではSQLを生成するwhe …

画面キャプチャ系extension

現在メインブラウザはchromeを利用しています。画面キャプチャextensio …

twitterと連携した写真のライブラリー

iPhoneを使うようになってから気軽に写真撮影し、そのままtwitter投稿す …

ジョジョ専用kindle fire HDの電源が入らない!

電源が入らない!MacBookAirが真っ黒になりました。とか、 iPhoneの …