心はいつも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
いまだにユビキタスなSONYとクラウドに向かうApple

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

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

第11章ユーザーをフォローする、です。ようやく最終章。1週間でできるつもりが3週 …

no image
Rubyの%を使う記法のうち、 %w

Rubyで%を使う記法は、たのるー(たのしいRuby)によると、以下の6通り % …

RailsGirls松江からのぉ〜東京More!*既に2回目

RailsGirls東京3回目に申し込みそびれた流れから松江に参加し、チューター …

no image
ブログは独自ドメインの方が強いかもね

すっかり月一ペースで更新するブログになってしまい焦ります。 震災直後に政権批判し …

no image
iPhoneのメーラーが真っ黒になってしまった。

iPhoneのメーラーはiPhoneにデフォルトでついているメーラーを使っていま …

no image
iPhoneのKindleアプリでChip Conley氏の本を読んでみました。その1

GWで電子本も文庫本も読み終え、「新しい本に入れ替えないと~」と思いながらすっか …

no image
Rubyの<< には3つの用法あり。

先週の#yokohamarbペアプロ画面をみていて

no image
@で始まるのが インスタンス変数

@ で始まるのが インスタンス変数 大文字で始まるのが 定数 文法書のどこに書い …

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

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