ruby學習筆記之陣列學習(一)

2021-06-19 11:49:38 字數 2951 閱讀 7037

陣列:方括號之之間放一組元素,索引從零開始。如果這個位置上沒有物件,則返回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...