Ruby 入門指南 - 認識 Ruby 語言

使用 Ruby 語言寫程式,最簡單的方式就是開啟文字編輯器 (text editor) ,然後將原始程式碼逐字元一個一個打進文字編輯器中,然後依純文字檔案的編碼儲存檔案, Ruby 程式的原始碼檔案採用 .rb 的副檔名。




也可以利用具有語法高亮度顯示的文字編輯器,或是整合開發環境 (Integrated Development Environment, IDE) ,如下圖為 Mac 系統的 Xcode



或是使用本站的語法高亮度顯示,此範例程式 demo.rb 如下
# -*- encoding : utf-8 -*-

# 建立 Object 物件
o = Object.new

# 於命令列印出訊息
puts 
puts o.to_s
puts "↑↑ 上面是 Object 的字串形式"
puts
puts "程式執行結束 ..."
puts

=begin
《程式語言教學誌》的範例程式
http://pydoing.blogspot.com/
檔名:demo.rb
功能:示範 Ruby 程式 
作者:張凱慶
時間:西元 2012 年 12 月
=end


先看到有特殊顏色標記的 beginend
begin end


beginend 為關鍵字 (keyword) 之一,所謂的關鍵字是語法功能的保留字 (reserved word) ,具有既定特殊的用法,這裡 =begin 與 =end 前面加上等號,表示從 =begin 到 =end 之間為跨行的註解 (comment) ,直譯器 (interpreter) 應該會忽略這部份的內容。


所謂的註解就是在程式中輔助說明的文字,凡是註解文字都不屬於會被程式執行的部份,因此可用自然語言替程式說明,無須恪守 Ruby 的語法規則。


另外井字號開頭的幾行
# -*- encoding : utf-8 -*-
# 建立 Object 物件
# 於命令列印出訊息


井字號開頭則是 Ruby 單行註解的方式,屬於 Perl 風格的註解樣式。第一行註解有點特別
# -*- encoding : utf-8 -*-


這是告訴 Ruby 直譯器此原始碼檔案以 utf-8 編碼,這是因為我們裡頭用了中文字元,所以要先做這樣的編碼宣告。若沒有第一行編碼宣告,直譯器會因為中文字元而直接中斷執行。


另外,雙引號為起來的內容則為另一種顏色
"↑↑ 上面是 Object 的字串形式"
"程式執行結束 ..."


這是字串字面常數 (string literal) ,所謂的字串 (string) 就是文字資料,其為雙引號或單引號圍起來內容,可以是任何輸入字元。


這個範例很簡單,印出一些訊息到命令列。我們逐行來看看 demo.rb 進行的工作,首先,第 4 行為建立 Object 型態的物件 (object) o
# 建立 Object 物件
o = Object.new


由於 Ruby 是物件導向程式語言 (object-oriented programming language) ,某種程度來說使用 Ruby 寫程式就是設計、規劃物件,然而 Ruby 已經內建一個程式庫 (library) ,很多時候我們都只需要直接利用程式庫中的物件即可。


new 為 Object 類別 (class) 的類別方法 (class method) ,這是說 new 可由類別名稱直接呼叫,而 new 的功能為建立一個新物件,或稱為實體 (instance) ,因為類別是物件的藍圖,所謂的實體就是實際的物件。


至於等號 = 是指派運算子 (assignment operator) ,用來將等號右邊的值 (value) 傳遞給等號左邊的變數 (variable) 。


下面連續用了 6 次 puts
# 於命令列印出訊息
puts 
puts o.to_s
puts "↑↑ 上面是 Object 的字串形式"
puts
puts "程式執行結束 ..."
puts


puts 為內建程式庫中輸出內容到電腦螢幕的方法 (method) ,空一格然後接輸出內容,通常是用字串,這裡
puts o.to_s


o 後面接小數點再接 to_s , to_s 為 Object 類別的實體方法 (instance method) ,要由實體物件才能呼叫,而 to_s 回傳 o 的字串形式,因此這一行 puts 後頭接的是一個字串。


類別可定義類別方法與實體方法,兩者的差別在於類別方法可直接由類別名稱呼叫,而實體方法得由類別用 new 建立的物件呼叫。


如果 puts 後面沒有接任何東西,就會輸出一個 '\n' ,這是一個新行符號,會在命令列印出空白的一行。


字串也是物件,底下雙引號圍起來的字元就是字串的常數形式
puts "↑↑ 上面是 Object 的字串形式"


其實 Ruby 中除了註解、關鍵字、運算子 (operator) 之外,其他統統都是物件。


接下來,我們繼續來看看如何執行 Ruby 程式吧!


中英文術語對照
文字編輯器text editor
整合開發環境Integrated Development Environment, IDE
關鍵字keyword
保留字reserved word
註解comment
直譯器interpreter
字串字面常數string literal
字串string
物件object
物件導向程式語言object-oriented programming language
程式庫library
類別class
類別方法class method
實體instance
指派運算子assignment operator
value
變數variable
方法method
實體方法instance method
運算子operator


您可以繼續參考
基礎篇


相關目錄
回 Ruby 入門指南
回 Ruby 教材
回首頁


參考資料
http://www.rubyist.net/~slagell/ruby/examples.html
http://www.rubyist.net/~slagell/ruby/strings.html
http://www.rubyist.net/~slagell/ruby/variables.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/intro.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_stdtypes.html

沒有留言: