首页 > 后端开发 > Golang > 如何在 Go 中模拟命名函数参数?

如何在 Go 中模拟命名函数参数?

Mary-Kate Olsen
发布: 2024-12-26 13:00:14
原创
307 人浏览过

How Can I Simulate Named Function Arguments in Go?

按字段名称传递函数参数

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板