在 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中文网其他相关文章!