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

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

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

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

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

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

パーフェクトRuby 2章Rubyの基礎 2-5-5 クラスメソッド

p54 2-5-5 クラスメソッド インスタンスメソッドに対して、クラスに対して …

no image
future vision 2019 vs 2010

マイクロソフトのfuture visonが話題らしい。 2019年の近未来。 情 …

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

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

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

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

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

6.2.4フォーマットを検証する です。 メールアドレスは文字数制限だけじゃだめ …

Objective-C苦節3ヶ月アプリ作れるようになった

このブログairpucci.comのメニューにアプリ開発追加しました。 昨年秋よ …

Mac mini買いました。

Appleの新製品発表が近づいているというのに、Mac mini買ってしまいまし …