Ruby 入門指南 - 陣列
- Get link
- X
- Other Apps
Ruby 入門指南 - 陣列
陣列 (array) 是 Ruby 裡稍微複雜的資料結構 (data structure) ,裡頭可以有多個不同資料型態 (data type) 的元素 (element)
這是說,陣列裡可以有整數 (integer) 、浮點數 (floating-point number) 、字串 (string) 、範圍 (range) 或是其他的陣列。陣列的字面常數 (literal) 為用中括號圍起來的內容,我們舉一例如下
a = [1, 2.0, "3", 4..5, [6]]
a.each do |i|
puts i
end
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:arraydemo.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
這個例子很簡單,我們用陣列的字面常數在陣列裡建立 5 個值,然後用一個 do 迴圈印出每個元素值,執行結果如下
其實陣列也是個很有彈性的資料結構,利用加號 + 可以合併另一個陣列,減號可以移除兩個陣列的相同元素,另外還有多種方法可用,例如 push 加入新元素、 pop 移除最新加入的元素,舉例如下
a = ["a"]
a = a + ["b"]
a.push("c")
a = a - ["b"]
a.pop()
a.each do |i|
puts i
end
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:arraydemo2.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
執行結果如下
我們打算設計一個編密碼的軟體,簡單說,就是建立一個英文小寫字母的對換表格,藉由這個表格,我們可以對英文句子中的小寫英文字母進行對換,例如 "There is no spoon." 可能變成以下任一個
Tfqdq ki jo itooj.
Tcnan hf gl fqllg.
Tczmz dn ij nkjji.
Tgfsf pb ir barri.
Tdcpc my fo yxoof.
也就是把二十六個小寫英文字母
abcdefghijklmnopqrstuvwxyz
改變一下順序
ntweapfyqrivzcjkdobslhxmgu
這樣就是密碼表了,由於陣列很好用,所以我們打算拿陣列來當密碼表,想想該怎麼做呢?首先密碼表需要儲存 26 個英文小寫字母,這個我們用陣列的建構子 (constructor) ,然後以 'a'..'z' 當參數 (parameter) 就行了
code = Array('a'..'z')
可是這樣是按順序的英文小寫字母呀!所以要 shuffle 一下囉
code = Array('a'..'z').shuffle
我們用下面的程式印出密碼表
code = Array('a'..'z').shuffle
puts
code.each do |i|
print i
end
puts "nn"
=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:codedemo.rb
功能:示範 Ruby 程式
作者:張凱慶
時間:西元 2012 年 12 月
=end
執行結果如下
看起來還不錯,接下來我們就開始來發展 Encrypt 類別 (class) 囉!
中英文術語對照 | |
---|---|
陣列 | array |
資料結構 | data structure |
資料型態 | data type |
元素 | element |
整數 | integer |
浮點數 | floating-point number |
字串 | string |
範圍 | range |
字面常數 | literal |
建構子 | constructor |
參數 | parameter |
類別 | class |
您可以繼續參考
軟體開發
- 陣列
- Encrypt 類別
- require
- initialize
- 編碼與解碼
- 認識標準程式庫及 Tk
相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁
參考資料
http://www.rubyist.net/~slagell/ruby/arrays.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/ref_c_array.html
訂閱:
張貼留言 (Atom)
window.___gcfg = { 'lang': 'zh-TW' };
- Get link
- X
- Other Apps
沒有留言:
張貼留言