Ruby 使用手冊

陣列 Arrays

你可以在 ([]) 中列出幾個項目建立一個陣列 (array),用逗號隔開項目。Ruby 的陣列能夠容納各種型別的物件。

ruby> ary = [1, 2, "3"]
   [1, 2, "3"]

陣列與字串一樣,能夠串接與重複。

ruby> ary + ["foo", "bar"]
   [1, 2, "3", "foo", "bar"]
ruby> ary * 2
   [1, 2, "3", 1, 2, "3"]

我們可以利用索引號碼 (index number) 指示陣列的任何部分。

ruby> ary[0]
   1
ruby> ary[0,2]
   [1, 2]
ruby> ary[0..1]
   [1, 2]
ruby> ary[-2]
   2
ruby> ary[-2,2]
   [2, "3"]
ruby> ary[-2..-1]
   [2, "3"]

(負號指從陣列結尾計算偏移位置 (offset),而不是從陣列開頭。)

陣列可用 join 轉換為字串,字串可用 split 轉換為陣列:

ruby> str = ary.join(":")
   "1:2:3"
ruby> str.split(":")
   ["1", "2", "3"]

雜湊 (Hashes)

關連陣列 (associative array) 不同於用數字序列的索引號碼提取內容,而是用一個 鍵 (key) (編註:可用任何物件當做 Key,但通常是 SymbolString 字串或 Fixnum 整數)。這種陣列一般稱為雜湊 (hash)字典 (dictionary),而在 Ruby 世界,我們慣用雜湊 (hash) 一詞。用大括號 ({}) 括起各對項目就能建立雜湊。雖然你用索引尋找陣列的內容,但尋找雜湊的內容則是用鍵 (key)。

ruby> h = {1 => 2, "2" => "4"}
   {1=>2, "2"=>"4"}
ruby> h[1]
   2
ruby> h["2"]
   "4"
ruby> h[5]
   nil
ruby> h[5] = 10    # 加入一個項目
   10
ruby> h
   {5=>10, 1=>2, "2"=>"4"}
ruby> h.delete 1   # 用 Key 刪除一個項目
   2
ruby> h[1]
   nil
ruby> h
   {5=>10, "2"=>"4"}

字串符號 (Symbol) (編註)

一個 Symbol 物件皆為冒號開頭,例如 :foo :foo_bar。它的作用就是代表一個名字,最大的作用就是當做 Hash 的鍵 (key),例如 { :foo => 1, :bar => 2 },在這裡我們只需要一個識別的名字,不需要使用字串物件。使用 Symbol 寫法更簡潔和獲得效能上的好處

Copyright (c) 2005-2008 Mark Slagell,中文翻譯 Ruby Taiwan 社群

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.

A copy of the license is included in the section entitled "GNU Free Documentation License."