まりぴよこのブログ

日々の日記。技術ネタでまとまりきってないものの記録、伝わる文章の書き方を練習とか。

Ruby Koans で学ぶ Array

Arrayについて

配列は何度かさわったことあるので、だいたい・・大丈夫・・・たぶん。。

配列のslicing(部分配列)について

大体思って通りだったんだけど、1カ所だけ。。(sliceは[]の別名)

  • 配列の開始indexが配列サイズより大きい場合、nilが返る
  • 配列の開始indexが配列サイズと一致する場合、空配列が返る
irb > array = [:peanut, :butter, :and, :jelly]
irb > array.size
=> 4
irb > array[4,0]
=> []
irb > array[5,0]
=> nil

ref.xaio.jp

配列への代入

複数代入

カンマ区切りで順番に代入

first_name, last_name = ["John", "Smith", "III"]
assert_equal "John", first_name
assert_equal "Smith", last_name

アスタリスク (*) が付くと、残りの配列が全て代入される

first_name, *last_name = ["John", "Smith", "III"]
assert_equal "John", first_name
assert_equal ["Smith", "III"], last_name

変数の値を入れ替え

コレ知らなかった!

first_name = "Roy"
last_name = "Rob"
first_name, last_name = last_name, first_name
assert_equal "Rob", first_name
assert_equal "Roy", last_name

tmp無しで入れ替え出来るんだ。すごいな〜♪