在 Go 中,函數呼叫要求參數按照與函數參數相同的順序列出。但是,您可能更喜歡透過名稱明確指定參數,如下所示:
MyFunction(name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000)
不支援非命名參數
不幸的是,Go 不支援命名參數對於功能。正如 Go 規範中所提到的,您必須按照預期的順序為所有非可變參數指定值。
選項1:使用Struct Wrapper
模仿命名參數,您可以建立一個包裝函數參數的結構體:
type Params struct { name, address, nick string age, value int } func MyFunction(p Params) { // perform some operations using p.name, p.address, etc. } func main() { MyFunction(Params{ name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000, }) }
Option 2:使用輔助函數
如果無法修改原始函數,請建立輔助函數,該函數採用結構體參數並使用適當的欄位作為參數呼叫原始函數。
func MyFunction2(p Params) { MyFunction(p.name, p.address, p.nick, p.age, p.value) } func main() { MyFunction2(Params{ name: "Bob", address: "New York", nick: "Builder", age: 30, value: 1000, }) }
以上是如何在 Go 中模擬命名函數參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!