在Ruby中,方法重載是指在同一類中定義多個同名方法,但它們的參數列表不同。這樣,根據傳遞給方法的參數數量和類型,Ruby會自動調用相應的方法實現。方法重載可以提高代碼的可讀性和靈活性。
以下是如何在Ruby中有效使用方法重載的示例:
class Calculator
# 重載加法方法,接受兩個數字參數
def add(a, b)
a + b
end
# 重載加法方法,接受一個數字參數和一個字符串參數
def add(a, b_str)
puts "字符串參數: #{b_str}"
a
end
# 重載乘法方法,接受兩個數字參數
def multiply(a, b)
a * b
end
# 重載乘法方法,接受一個數字參數和一個字符串參數
def multiply(a, b_str)
puts "字符串參數: #{b_str}"
a
end
end
calc = Calculator.new
puts calc.add(1, 2) # 輸出: 3
puts calc.add(1, "2") # 輸出: 字符串參數: 2
puts calc.multiply(3, 4) # 輸出: 12
puts calc.multiply(3, "4") # 輸出: 字符串參數: 4
在這個示例中,我們為Calculator
類定義了四個重載方法。當調用這些方法時,Ruby會根據傳遞的參數數量和類型自動選擇正確的方法實現。
需要注意的是,方法重載只適用于方法名相同,而參數列表不同的方法。如果你想要根據參數的類型或數量來執行不同的操作,可以考慮使用方法重寫(method overriding)或者使用其他設計模式,如策略模式(Strategy Pattern)。