陣列:方括號之之間放一組元素,索引從零開始。如果這個位置上沒有物件,則返回nil表示空。
使用負整數訪問陣列,則從陣列末端開始計數。
一、陣列定義
a = [3.14159,"pai",99]
puts a.class
puts a.length
puts a[0]
輸出:
array
33.14159
b=array.new
puts b.class
puts b.length
b[0]="aab"
b[1]="abb"
puts b.length
輸出:array
02
c=[1,3,5,7,9]
puts c[-1]
puts c[-2]
print "c[-99]:#\n"
輸出:9
7c[-99]:
(2)array.new 生成乙個空的新陣列
array.new(size) 生成size個obj物件組成的新陣列 [nil,nil,...]
array.new(5,'a')建立給定大小的陣列['a','a','a','a','a']
(3)=設定陣列中的元素,若有間隙用nil來填充
c=[1,3,5,7,9]
c[6]=66
print "c:#\n"
輸出:c:[1, 3, 5, 7, 9, nil, 66]
(4)選取元素組成新陣列
a=%w
p a.values_at(1,3,5)
輸出:["b","d", "f"]
p a.values_at(1,3,5,7)
輸出:["b","d", "f", nil]
p a.values_at(-1,-3,-5,-7)
輸出:["f","d", "b", nil]
p a.values_at(1..3,2...5)
輸出:["b", "c", "d", "c", "d", "e"]
二、資料讀取
1.範圍讀取:[start,count]返回從start開始的count個物件
c=[1,3,5,7,9]
print "c[1,3]:#"
print "\nc[3,1]:#\n"
puts c[-3,2]
輸出:c[1,3]:[3, 5, 7]
c[3,1]:[7]
57
2.區間:使用range來對陣列進行索引,2個點包含結束,3個點不包含
print "c[2..4]:#"
print "\nc[2...4]:#"
print"\nc[-3..-1]:#"
print"\nc[-1..-3]:#\n"
輸出:
c[2..4]:[5, 7, 9]
c[2...4]:[5, 7]
c[-3..-1]:[5, 7, 9]
c[-1..-3]:
3.讀取指定元素
array.at比array快,因為不接受range引數
a=[11,22,33,44]
p a.at(1)
輸出:22
p a.at(-1)
輸出:44
p a.fetch(1)
輸出:22
p a.fetch(-1)
輸出:44
p a.fetch(-1,'car')
輸出:44
p a.fetch(4,'car')
p a
輸出:"car"
[11, 22, 33, 44]
p a.fetch(4)
輸出:16
4.first和last訪問元素
x=[1,2,3,4]
puts x.first
#output: 1
puts x.last
#output: 4
putsx.first(2).join("-")
#output: 1-2
putsx.last(2).join("-")
#output: 3-4
三、賦值
1.如果長度為0,則賦值語句右邊的東西將被插入到陣列的起點位置之前,且不刪任何元素;
如果右邊本身是乙個陣列,則其元素將替換掉原陣列對應位置上的東西;
如果索引下標選擇的元素個數和賦值語句右邊元素個數不一致,那麼陣列將會走動調整其大小
c=[1,3,5,7,9]
c[2,2]='ccc'
print "c:#\n"
輸出:c:[1, 3, "ccc", 9]
c[2,0]='coc'
print "c:#\n"
輸出:c:[1, 3, "coc", "ccc", 9]
c[1,1]=[9,8,7]
print "c:#\n"
輸出:c:[1, 9, 8, 7, "coc", "ccc", 9]
c[0..3]=
print "c:#\n"
輸出:c:["coc", "ccc", 9]
c[5..6]=99,98
print "c:#\n"
輸出:c:["coc", "ccc", 9, nil, nil, 99, 98]
2.陣列可以不設初始值,可以使用
《操作來新增到陣列的末尾,後進先出
x=x<<"jack"
x<<"tom"
x<<"crystal" puts x[2]
#輸出:crystal
puts x[x.length-1]
#輸出:crystal
#pop刪除最後乙個元素,並返回給元素
x.pop
puts x[x.length-1]
#輸出:tom
ruby學習筆記之陣列學習(一)
陣列 方括號之之間放一組元素,索引從零開始。如果這個位置上沒有物件,則返回nil表示空。使用負整數訪問陣列,則從陣列末端開始計數。一 陣列定義 a 3.14159,pai 99 puts a.class puts a.length puts a 0 輸出 array 33.14159 b array...
ruby學習筆記(一)
1.ruby中列出物件的方法 要知道乙個類是否定義了某個特殊的例項方法,需要在類上呼叫method defined?或者在類的例項上呼叫respond to?要知道乙個類是否定義可某個特定的類方法,需要在類上呼叫respond to?class myclass def myclass.my sing...
Ruby學習筆記(一)
1 單引號和雙引號的區別 單引號中不能包含變數,雙引號中可以包含變數。在ruby中,單引號中的 n這樣表示換行之類的轉義字元都會無效,直接輸出出來。2 使用for r uby的for有兩種用法 sum 0 for i in 2.5 sum 1 endputs sumnames a b c for n...