Ruby 入門指南 - 陣列





































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







沒有留言:




















window.___gcfg = { 'lang': 'zh-TW' };





Popular posts from this blog

迅雷 Thunder 7.9.43.5054 免安裝版 (9.1.41.914 安裝版) - 支援BT下載的萬用 檔案下載工具

Nhiều đồn đoán cho rằng bộ đồ "phá vỡ quy tắc" của Meghan Markle được lấy cảm hứng từ trang phục của Công nương Diana

Cụ ông 92 tuổi gào khóc vì mất hết tiền tiết kiệm cả đời, càng cay đắng hơn khi kẻ trộm là đứa cháu trai 34 tuổi