在 Ruby 中,方法重載是通過在同一個類中定義多個同名方法,但它們的參數列表不同來實現的。方法重載允許你使用相同的方法名,但是根據傳遞給方法的參數數量和類型來執行不同的操作。
以下是一個簡單的 Ruby 方法重載示例:
class Calculator
def multiply(a, b)
"Multiplication: #{a} * #{b}"
end
def multiply(a, b, c)
"Multiplication with multiple arguments: #{a} * #{b} * #{c}"
end
end
calc = Calculator.new
puts calc.multiply(2, 3) # 輸出 "Multiplication: 2 * 3"
puts calc.multiply(2, 3, 4) # 輸出 "Multiplication with multiple arguments: 2 * 3 * 4"
在這個示例中,我們定義了一個名為 Calculator
的類,其中包含兩個名為 multiply
的方法。第一個方法接受兩個參數,而第二個方法接受三個參數。當我們調用這些方法時,Ruby 會根據傳遞給它們的參數數量和類型來選擇正確的方法版本。
需要注意的是,Ruby 的方法重載并不是真正意義上的重載,因為在編譯時,Ruby 并不知道哪個方法版本將被調用。相反,Ruby 會在運行時根據參數數量和類型來確定要調用的方法。這使得 Ruby 的方法重載實現相對簡單,但也可能導致一些意想不到的行為。