[Ruby] 5th street

因為CH.3後面在討論編碼的問題,不過暫時對我來說可能還用不到,不過時間有限,就來到了下一段。

3.3 Arrays

Ruby的Array類別提供了一些有趣的Method,常用的如size(同length),可以用直接回傳Array的長度。基本的東西大概都和別的語言一樣,唯一一個要注意的就是它對Out-of-bound的處理是回傳一nil,但通常別人都是直接Error了,所以可以為這種狀況做一些判斷,真是貼心呀。

來看一下Array要怎麼用:
http://gist.github.com/291064.js?file=gistfile1.rb

再上語法甜點:
http://gist.github.com/291066.js?file=gistfile1.rb

看完例子大概就很清楚要怎麼操作它了XD,而index的操作就請看前面幾篇,概念是一樣的,所以應該很好上手。

當然也要提幾個好用的東西,像是可以用「+」把兩個Array給串接起來,反之也可以用「-」把Array相符合的元素給刪除掉,來看個實際的Demo:

http://gist.github.com/291110.js?file=gistfile1.rb

水哦,還記得之前String的「<<」運算子嗎,你應該會想說,該不會在Array也可以用吧,沒錯,還真的可以用,來看看運行的情況:

http://gist.github.com/291113.js?file=gistfile1.rb

和String好像,了解一個就會這個了XD

這邊有個很有趣的就是,它也把布林運算子「&」、「|」都拿來玩了,它們是用來比較兩個Array間元素的狀況用的,廢話不多說,再來個例子:

http://gist.github.com/291115.js?file=gistfile1.rb

簡單來說,「|」就是「聯集」,而「&」就是「交集」。交集就是找出A、B兩個集合間共有的元素,而聯集就是找出A、B兩個集合的所有元素。但是在Ruby內還多了一個限制,這兩個布林運算所回傳的的結果並不會有重覆的情況(不會有[1,1 …] 這種情形)。最後,也是要特別注意的,就是Array下的這種布林運算並沒有Transitive(遞移性),即「A|B」≠「B|A」,看例子就發現其順序會相反,這要留意一下呀!!

看了這麼多例子,先來去試試看比較實在啦,文末附上Array可用的Method:

http://gist.github.com/291120.js?file=gistfile1.rb

我們下篇見XD~