Go 中不支援傳統函數重載,但可以透過以下技術模擬:多重返回值:方法簽署相同但返回類型不同的函數可實現重載。可變參數:使用 ... 語法建立接收可變數量參數的函數,允許處理不同簽章的方法呼叫。
如何在 Go 中重載函數?
在 Go 中,不支援傳統意義上的函數重載。然而,可以使用以下幾種技術來模擬重載行為:
1. 多返回值
方法簽名相同但返回類型不同的函數可以被認為是重載。例如:
func GetValue(key string) (int, error) { ... } func GetValue(key int) (string, error) { ... }
2. 可變參數
使用 ...
語法可以建立接收可變數量參數的函數。這允許函數處理具有不同簽名的方法呼叫。例如:
func PrintValues(...interface{}) { ... }
實戰案例
實作一個列印任意數量字串的函數,方法簽章為Println(msg ...string)
。
package main import "fmt" // Println 模拟了函数重载,它可以打印任意数量的字符串 func Println(msg ...string) { for _, v := range msg { fmt.Print(v) } fmt.Println() } func main() { Println("Hello", "World") // 输出:HelloWorld Println("a", "b", "c") // 输出:abc }
以上是如何重載 golang 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!