好吧,在這裡看到這麼的多技術大牛。我根本不敢寫部落格。但是還是發出去試試吧,畢竟我是第一次寫這些東西。
OK.陣列就是一系列值,可以通過它們的位置或索引來訪問它們。
光看不如直接寫。試試才知道,實踐出真相嘛。
建立陣列:
001:0> [7, 8, 9, 0] #一個簡單的陣列
=> [7, 8, 9, 0]
002:0> [1..8, 1..10] #陣列裡面套range
=> [1..8, 1..10]
003:0> [[1, 2], [2, 3], [3, 4]] #陣列裡麵包括陣列。二維陣列
=> [[1, 2], [2, 3], [3, 4]]
004:0> [] #陣列可以為空
=> []
005:0> [1+2, 2+3, 3+4] #陣列元素可以是表示式
=>[3, 5, 7]
陣列裡面還有特殊的語法
001:0> a = %w[a array]
=> ["a", "array"]
002:0> b = %w|the other array|
=> ["the", "other", "array"]
003:0> c = %W(1+1 1+2 1+3)
=> ["1+1", "1+2", "1+3"]
使用%w建立的是一個字串陣列。
使用構建函式建立陣列
empty = Array.new #一個空的陣列
nils = Array.new(5) #有5個空元素的陣列
one = Array.new(1,1) #有一個元素是1的陣列
copyone = Array.new(one) #複製了one這個陣列
count = Array.new(5) {|k| k+1} #從1到5的陣列
使用陣列
使用陣列的值
只要通過索引值來索引就可以了,當然你不能超過它的size.
****陣列是從0開始的***
test = [1,2,3,4,5] #新建陣列
test[1] #=>2
test[-1] #=>5
test[test.size-1] #=>5
test[-test.size] #=>1
test[0,1] #還可以用兩個整數來索引,第一個為其實索引,第二個為個數。=>1
test[0,2] #=>[1,2]
test[1..2] #還可以用Range索引。=>[2,3]
改變陣列的值
與使用陣列的值一樣,只要在左側賦值就可以了。
a = [1,2,3]
a[1] = 3 #a = [1,3,3]
a[0,1] = 3 #a = [3,3,3]
陣列操作符
陣列可以進行+、-、*、<<、|、&。操作
a = [1,2,3] + [4,5,6] #[1,2,3,4,5,6]
a = a + [7,8,9] #[1,2,3,4,5,6,7,8,9]
a = a + 10 #型別不同報錯 = =
a = a - [1,7,8,9,0] #[2,3,4,5,6] 會減去所有左邊元素內所有與右邊元素一樣的
a = a * 2 #[2,3,4,5,6,2,3,4,5,6]
a << 1 #[2,3,4,5,6,2,3,4,5,6,1]
b = [2,3,4,8,9]
a | b #[2,3,4,5,6,8,9] 並集
b | a #[2,3,4,5,8,9,6,1] 也就是說a | b 與 b | a是不同的
a & b #[2,3,4]交集
b & a #[2,3,4]這個例子中看不出,其實a & b與b & a也是不同的