Ruby學習筆記 Array

2021-09-06 04:31:26 字數 3440 閱讀 9539

由於工作需要,最近在學習

ruby

,現在主要在看兩本書《

ruby on rail

程式設計技術詳解》和《

ruby of book

》。畢竟是要在工作中運用,而且時間還有限,所以我在看書和做例子的同時也簡單記錄下了一些基本知識點,方便用的時候查詢。有興趣的朋友歡迎一起交流學習:l陣列

1.

建立陣列

和其它很多程式語言一樣,很容易建立乙個陣列

,但要注意的是

ruby

是一種弱型別的指令碼語言,陣列中各元素的型別可以互不相同,而且陣列的長度可變:

arr = [「one」,」two」,」three」]

orarr = array.new                    #an empty array

arr = array.new(5)               #[nil, nil, nil, nil, nil]

arr = array.new(5,」hello」)    #[」hello」, 」hello」, 」hello」, 」hello」, 」hello」]

當建立乙個陣列時,如果其元素為

string

型別且使用單引號,而你又不想老輸入單引號,那麼我們可以使用下面的方法來建立(使用

%w來建立用雙引號括起來的字串):

arr = %w( this is an array of strings)    #

使用空格作為元素的分隔符

2.

通過索引訪問陣列的值:

ruby

中,陣列索引可以是正整數(從前到後,從

0開始)也可以是負整數(從後

到前,從

-1開始

)還可以是範圍(

range):

arr = ['h','e','l','l','o',' ','w','o','r','l','d']

print arr[0,5]

puts

print arr[0..4]

puts

print arr[0...4]

puts

print arr[-5,5]

--------results--------

hello

hello

hell

world

note:

arr[-5,5]:

前乙個整數-5表示開始的索引,後面乙個整數5表示數量

3..

複製陣列:

當使用」=

」將乙個陣列變數賦值給另乙個陣列變數時,這兩個陣列變數引用的仍然是同乙個陣列,修改其中乙個陣列的值,另乙個也會修改。我們可以使用clone

方法複製乙個新陣列:

arr = [

『one』,

』two』,

』three』,]

arr1= arr               #arr

和arr1

引用的還是同乙個陣列,修改乙個另乙個也會修改

arr2=arr.clone        #arr2

是arr

的乙個新版本,修改

arr2

不影響arr

4..

比較陣列大小:

當使用<=>

來比較兩個陣列a1和

a2時,有三種情況:

1.a1 小於a2,

返回-1

2.a1

等於a2,返回

03.a1 大於a2,

返回1那麼,陣列是如何比大小的呢?

當兩個陣列進行比較時,會把兩個陣列相同索引(從

0開始)上的值拿來比較,如

[0,10,20]<=> [0,20,20],

則會返回

-1,因為當索引為1時,

10<20;

另外,如果比較的兩個陣列的元素是字串,那麼就比較它們的

ascii;

如果乙個陣列

比另乙個長且其它元素都相同,那麼陣列長的『大』。

然而,如果乙個短陣列裡面的乙個元素比另乙個長陣列裡面的同位置的元素大,則認為短陣列『大』。

arr1=[1,2,3,4,5]

arr2=[1,2,3,4,5]

arr3=[1,2,3,4]

arr4=[1,2,3,5]

arr5=[1000,2000,3000]

arr6=[1,2]

arr7=[2,1]

arr8=["hello", "world"]

arr9=["hello", "world"]

p(arr1<=>arr2)      #     0

p(arr3<=>arr1)      #     -1

p(arr4<=>arr3)      #     1

p(arr5<=>arr4)      #     1

p(arr7<=>arr6)      #     1

p(arr8<=>arr7)      #     nil

p(arr9<=>arr8)     #     -1

5.

陣列排序:

sort

方法使用比較操作符

<=>

來比較乙個陣列中鄰近的元素的大小,但是這個不能比較乙個陣列中包含有

nil的值的情況;

arr.sort

說明:在這

arr是乙個陣列物件,a和

b代表相鄰的兩個元素。本方法使用了

to_s

方法把nil

轉換為乙個空字串,這樣就可以對含有

nil的陣列進行排序了。此外,這個陣列本身的值不會發生任何變在。

6.

新增和刪除陣列元素:

向陣列新增元素:

unshift

:向陣列頭部新增陣列元素

push:  

向陣列頭部尾陣列元素

<< :

向陣列尾部新增乙個陣列元素

向陣列刪除元素:

shift:

從頭部刪除陣列元素,並返回被刪除的元素

pop:

從尾刪除陣列元素,並返回被刪除的元素

Ruby學習筆記 Array

由於工作需要,最近在學習 ruby 現在主要在看兩本書 ruby on rail 程式設計技術詳解 和 ruby of book 畢竟是要在工作中運用,而且時間還有限,所以我在看書和做例子的同時也簡單記錄下了一些基本知識點,方便用的時候查詢。有興趣的朋友歡迎一起交流學習 l 陣列 1 建立陣列 和其...

ruby學習 陣列類(Array)

1,陣列的建立 1 使用 來建立陣列 num 2,3,4,5,6 str a d c 2 使用array.new 來建立 3 使用 w與 i來建立 2,to a方法。對雜湊物件使用to a方法,結果會得到相應的陣列的陣列。3,split方法 對用逗號或者空白間隔的字串使用split方法,也可以建立陣...

Ruby學習筆記 陣列的處理array

arr 4,5,6 print arr.join n 4,5,6 print arr.join n 意思是 將陣列arr轉換成字串輸出,用 隔開每個元素,並且換行。arr 4 m 把4號索引為止元素賦值為 m print arr.join n 4,5,6,m print arr 3 n 列印3號索引...