1. 程式人生 > >ruby 陣列與雜湊雜湊小結

ruby 陣列與雜湊雜湊小結

首先安裝 ruby

安裝 rvm => ruby => rubymine

首先是陣列的建立

names = [ ] #定義一個空陣列
names = Array.new #建立陣列
names = Array.new(20) #設定陣列的大小

我們還可以返回陣列的長度

names = Array.new(20)  
puts names.size  # 返回 20  
puts names.length # 返回 20  

 陣列的運算

    << :追加元素

    +   :串聯方法

    -    :陣列差集

    &   :陣列交集

    |    :陣列並集

    *   :重複陣列,如果*後面是整數,則返回重複整數次的陣列,如果是字串,則返回重複使用該字串連線陣列。

  1. [1,2] << 3       #[1,2,3]  
  2. [1,2] + [1,2]    #[1,2,1,2]  
  3. [1,2,3] - [3,4]     #[1,2]  
  4. [1,2,3] & [3,4]    #[3]  
  5. [1,2,3] | [3,4]     #[1,2,3,4]  
  6. [1,2] * 2     #[1,2,1,2,1,2]  
  7. [1,2] * '--'    #1--2  

陣列的常用方法

array.at(index) 返回索引為 index 的元素。一個負值索引從 self 的末尾開始計數。如果索引超出範圍則返回 nil。

array.clear 從陣列中移除所有的元素

array.compact 返回 self 的副本,移除了所有的 nil 元素

array.delete_at(index) 刪除指定的 index 處的元素,並返回該元素。如果 index 超出範圍,則返回 nil 

array.empty? 如果陣列本身沒有包含元素,則返回 true

array.eql?(other) 如果 array 和 other 是相同的物件,或者兩個陣列帶有相同的內容,則返回 true

array.first [or] array.first(n) 返回陣列的第一個元素或前 n 個元素

array.join(sep=$,) 返回一個字串,通過把陣列的每個元素轉換為字串,並使用 sep 分隔進行建立的

array.last [or] array.last(n) 返回 self 的最後一個元素。如果陣列為 空 ,則第一種形式返回 nil

array.pop 從 array 中移除最後一個元素,並返回該元素

array.push(obj, ...) 把給定的 obj 附加到陣列的末尾

array.reverse 返回一個新的陣列,包含倒序排列的陣列元素

array.sort [or] array.sort { | a,b | block } 返回一個排序的陣列

array.uniq 返回一個新的陣列,移除了 array 中的重複值

雜湊hash

定義hash

h = Hash.new  
h = Hash[1=> 'a',2=> 'b']   
h = {a=> '1',b=> '2'}  

我們可以對hash進行簡單的操作

items = [
{
barcode: 'ITEM000000',
name: '可口可樂',
unit: '瓶',
price: 3.00
},
{
barcode: 'ITEM000001',
name: '雪碧',
unit: '瓶',
price: 3.00
}
]


item[:barcode] # 對屬性進行操作
item.push(item) #新增鍵值對
item.push(count:1) #新增屬性
item << [ count : 1] #新增屬性

hash常用方法

hash.clear 從雜湊中移除所有的鍵值對

hash.[key] 使用鍵,從雜湊引用值。如果未找到鍵,則返回預設值

hash.shift 從 hash 中移除一個鍵值對,並把該鍵值對作為二元素陣列返回

hash.size 以整數形式返回 hash 的 size 或 length

hash.sort 把 hash 轉換為一個包含鍵值對陣列的二維陣列,然後進行排序

hash.store(key, value) 儲存 hash 中的一個鍵值對

hash.to_a 從 hash 中建立一個二維陣列。每個鍵值對轉換為一個數組,所有這些陣列都儲存在一個數組中

hash.to_s 把 hash 轉換為一個數組,然後把該陣列轉換為一個字串

hsh.invert:返回逆轉Hash的鍵和值的新Hash