
夠用的 Ruby
|
5
'a couple'
else
'many'
end
}
=> #<Proc (lambda)>
>> quantify.call(2)
=> "a couple"
>> quantify.call(10)
=> "many"
>> x = 1
=> 1
>> while x < 1000
x = x * 2
end
=> nil
>> x
=> 1024
物件和方法
Ruby 看似其他的動態語言,但最特殊的地方在於:Ruby 的每個值都是
物件
(
object
),
而物件之間是以
訊息
(
message
)的傳遞作為溝通方式
1
。每個物件有自己的
方法
(
method
)
集合,會決定物件該如何回應某些特定的訊息。
訊息有名稱,而且可能還會有引數。當物件接收到訊息,就會以來自訊息的引數一起執
行訊息對應的方法。這也是 Ruby 完成所有工作的方式,就算只是
1 + 2
也是如此;這
意謂著『將名稱為 + 的訊息和引數
2
傳送給物件
1
』,而物件 1 所擁有的
#+
方法,可以
處理該訊息。
我們可以利用
def
關鍵字來定義自己方法:
>> o = Object.new
=> #<Object>
>> de f o.add(x, y)
x + y
end
=> nil
>> o.add(2, 3)
=> 5
1 這種風格來自 Smalltalk,這種程式語言直接影響了 Ruby 的設計。