Ruby中的陣列

WeHentai發表於2019-02-16

好吧,在這裡看到這麼的多技術大牛。我根本不敢寫部落格。但是還是發出去試試吧,畢竟我是第一次寫這些東西。
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也是不同的

相關文章