一.陣列
1.陣列的定義
a = array.new #定義乙個陣列a
b = array.new(5) #定義乙個含5個nil元素的陣列
c = array.new(5,1) #定義乙個含5個1元素的陣列
d = #定義乙個空陣列d
2.陣列的運算
<< :追加元素
+ :串聯方法
- :陣列差集
& :陣列交集
| :陣列並集
* :重複陣列,如果*後面是整數,則返回重複整數次的陣列,如果是字串,則返回重複使用該字串連線陣列。
[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
3.陣列常用方法
a = [1,2,3,4,5,6]
a[1] #2
a[0,2] #[1,2,3]
a[0..2] #[1,2,3]
a[-2,2] #[5,6]
a[2] = 7 #陣列變成[1,2,7,4,5,6]
a[0,2] = [8,9,10] #陣列變成[8,9,10,4,5,6]
陣列具有所有enumerable模組所提供的方法:
a = [1,2,3,4,5]
a.find_all #[2,4]
a.max #5
a.include?(5) #true
a.inject #15
其他的方法:
ary.size或ary.length:返回陣列的大小(長度);
ary.concat(other_array):將other_array的元素附加到ary中;
ary.clear:清空陣列;
ary.delete(obj):刪除陣列中與obj相等的元素,如果找到則返回obj,否則返回nil;
ary.delete_at(index):刪除指定下標處的元素;
ary.delete_if:刪除指定條件的元素;
ary.first和ary.last:返回陣列的第乙個元素/最後乙個元素;
ary.compact:返回乙個陣列的副本,並刪除其中的nil元素;
ary.flattern:如果ary中包含的元素為陣列,將不斷遞迴合併,返回乙個值包含基本元素的陣列;
[1,[2,3],[4,[5,6]],7].flattern #[1,2,3,4,5,6,7]
ary.index(obj):返回陣列中第乙個等於obj元素的下標;
ary.insert(index,obj):在指定位置插入物件到陣列中;
ary.join(separator):合併陣列為乙個字串,類似與「*」;
ary.pop和ary.shift:刪除陣列中最後乙個元素/第乙個元素;
ary.push(obj):類似於《方法,將obj新增到陣列中;
ary.replace(other_array):使用other_array替換掉ary中的內容;
ary.reverse:返回乙個陣列反序ary中的元素。
二.雜湊hash
1.定義hash
h = hash.new
h = hash[1=> 'a',2=> 'b']
h =
2.取值賦值
h =
h[1] #a
h['2'] #b
h[2] #nil
h['2'] = 'c'
h['a'] = 'd'
h #
3.hash常用方法
hsh.clear:清空hash
hsh.delete(key):刪除hash中鍵key的項;
hsh.delete_if:根據指定條件刪除元素;
hsh.has_key?(key):判斷hash中是否包含給定的鍵key;
hshhsh.has_value?(value):判斷hash中是否包含給定的值value;
hsh.index(value):返回hash中值為value的鍵,如果有多個只返回第乙個,沒有返回nil;
hsh.invert:返回逆轉hash的鍵和值的新hash;
hsh.keys:返回hash的鍵組成的陣列;
hsh.values:返回hash的值組成的陣列;
hsh.values_at(keys):返回給定鍵對應的值組成的陣列;
a =
a.values_at(1,2,3) # ['a','b',nil]
hsh.length:返回hash中元素的個數;
hsh.merge(other_hash):合併兩個hash,重複的鍵,other_hash的對應值將hsh的值覆蓋;
hsh.replace(other_hash):使用other_hash中的值替換hsh中相同鍵的值;
hsh.to_a:將hash轉換為陣列。
4.查詢和迭代
hsh =
hsh.find_all #[['c',13],['a',2]]
hsh.max #返回值最大的元素
hsh.sort_by #按鍵排序
hsh.sort_by #按值排序
Ruby的陣列和雜湊對比
相同點 都是帶索引的集合。都是用來儲存物件集合的。都可以通過鍵來訪問。都可以動態增加記憶體空間來儲存新元素。都能儲存任何型別的物件。不同點 陣列的鍵是整數,雜湊可以是任何物件。陣列訪問效率更高,雜湊訪問更靈活。陣列用方括號來建立和初始化,雜湊用花括號 來建立和初始化。各自特點 陣列array a a...
ruby陣列與雜湊表
q中定義的字串,不加分號 如 hello 與 q hello 表示同一字串 w表示陣列,不對變數進行替換 w表示陣列,對變數進行替換 雜湊錶用 序列進行分隔 irb main 001 0 w fred wilma barney betty great gazoo fred wilma barney ...
Ruby學習筆記3(字串,陣列,雜湊)
支援 在乙個雙引號括起的字串內,轉義字元會被解析。在乙個單引號括起的字串內,轉義字元不會被解析,原樣輸出。在字串中使用 資料標籤來輸出ruby表示式的值。還支援使用 q和 q來引導的字串 desc1 q desc2 q ruby 的字串可以使用 和 puts desc1 ruby 的字串可以使用 和...