
14
|
第 1 章
猴子修補
我們隨時都能將新的方法加到現有的類別或模組,這項極具威力的功能通常稱為
猴子
修補
(
monkey patching
),它能讓我們擴充現有類別的行為:
>> class Point
def -(other_point)
Point.new(x - other_point.x, y - other_point.y)
end
end
=> nil
>> Point.new(10, 15) - Point.new(1, 1)
=> #<Point (9, 14)>
Ruby 內建的類別甚至也能猴子修補:
>> class String
def shout
upcase + '!!!'
end
end
=> nil
>> 'hello world'.shout
=> "HELLO WORLD!!!"
定義常數
Ruby 支援一種名為
常數
(
constant
)的特殊類型變數,這種類型的變數一旦建立之後,
就不能重新指定(Ruby 並不會阻止重新指定常數,而是會產生警告讓我們知道自己正
做了不對的事)。任何名稱開頭是大寫字母的變數就是常數,我們可以在類別或模組的
頂層或內部定義新的常數:
>> NUMBERS = [4, 8, 15, 16, 23, 42]
=> [4, 8, 15, 16, 23, 42]
>> cl ass Greetings
ENGLISH = 'hello'
FRENCH = 'bonjour'
GERMAN = 'guten Tag'
end
=> "guten ...