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