這是簡要指南,協助您閱讀我網站上的 Ruby 程式碼範例。這並非 Ruby 的完整指南,我只會介紹我在文章中使用的結構。我假設您熟悉基本的物件導向語言。
左邊欄位包含程式碼片段,右邊則是對該組片段含義的說明。如果您發現某些 Ruby 程式碼無法理解,請向下掃描左邊欄位,尋找類似的內容。
若要入門 Ruby,最好的書籍是 PickAxe。若要尋找線上指南,沒有任何指南能比 Why's (poignant) Guide 更棒。
puts "hello world" |
列印至主控台 |
class ClassName |
宣告類別 |
def some_method arg1, arg2 call_method(arg1) end def property= arg1 @property = arg1 end |
宣告方法 方法可能是全域(如果在頂層定義)或類別上的執行個體方法。 在方法定義和方法呼叫上,括號為選用,前提是沒有歧義。 方法名稱可以包含「=」(這種情況下,它們會用作 |
@field |
執行個體變數。 不需要宣告,會在首次使用時定義。如果在設定前存取,則會傳回 nil。 |
def self.class_method |
定義類別方法 |
@@class_variable |
類別變數 |
$global_variable |
全域變數 |
attr_accessor :field1, :field2 attr_reader :field |
具有存取器的執行個體變數 使用執行時期程式碼產生來定義 getter |
def initialize |
初始化方法 每當您建立執行個體時,就會呼叫這個方法。預設情況下,您可以使用 |
class Subclass < Superclass |
宣告繼承 |
{|arg1, arg2| doSomething(arg1, arg2)} do |arg1, arg2| doSomething(arg1, arg2) end do doSomething end |
區塊 定義一個區塊,Ruby 用來表示 閉包 的名稱。兩種語法 {} 和 do/end 大多數情況下是等價的。{} 形式通常用於單行,而 do/end 形式用於多行區塊。 可以不帶參數或帶多個參數。像任何閉包一樣,可以引用詞法範圍內的任何變數。 區塊在 Ruby 中廣泛用於整個函式庫。 |
var ||= value |
賦值給 Nil 僅當 var 為 nil 時,才將值賦給 var。這等於 這裡的可怕細節來自於 nil 為假值(表示在布林表達式中 nil 被視為 false)。因此,與 |
aList.each {|i| doSomething(i)} |
遍歷清單 區塊 是遍歷清單的通常方式。對清單的其他操作使用 CollectionClosureMethod。 |
emptyArray = [] newArray = [var, "some text"] doSomething([var1, var2]) |
陣列 Ruby 的陣列實際上是清單。它們是具有豐富 API 的可增長結構。你可以在表達式中的任何地方自由使用它們,例如在方法呼叫中。 |
var = aHash[key] aHash[key] = var newHash = {key1 => value1, key2 => value2} emptyHash = {} |
雜湊 |
anObject. aMethod(arg1, arg2, arg3) |
推斷的語句延續 Ruby 使用換行符號作為語句分隔符。96% 的情況下這正是你需要的。然而,偶爾地,行會變得很長,因此使用換行符號的語言需要語句延續字元,以允許語句跨越多行。 Ruby 使用多個字元來推斷語句延續。因此,如果你在參數清單中以 "," 結束一行,ruby 會推斷你想要繼續語句。類似地,如果你以 "." 結束一行進行方法呼叫。 |
字串可以使用單引號或雙引號(具有不同的跳脫規則)。