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,2] << 3 #[1,2,3]
- [1,2] + [1,2] #[1,2,1,2]
- [1,2,3] - [3,4] #[1,2]
- [1,2,3] & [3,4] #[3]
- [1,2,3] | [3,4] #[1,2,3,4]
- [1,2] * 2 #[1,2,1,2,1,2]
- [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