为了账号安全,请及时绑定邮箱和手机立即绑定

Go 是否支持嵌套类型声明或对匿名结构的文字赋值?

Go 是否支持嵌套类型声明或对匿名结构的文字赋值?

Go
holdtom 2023-05-04 16:56:41
我是 Go 的新手,有两个关于类型的问题。例如,采用以下代码:type Rule struct {    handler func() (err error)    creator string    args struct {        extension string        action string        folder struct {            location string            storage string        }    }}1)如何Rule使用单个文字声明创建一个新的并为属性赋值args?这段代码有什么问题:rule := Rule{    args: {        extension: "png,jpg,gif,svg",        action: "move",    },}2) 是否可以在类型中定义类型?例如,在不将代码分成两个单独的类型声明的情况下,我可以修改类型args的一部分Rule,以便它定义第二个类型吗RuleArgs?我知道我可以将它们分解成多个赋值和声明,但我的问题是我是否必须这样做(即 Go 是否不可能不这样做)?
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

嵌套结构是一种可行的方法,但它们会导致一些混乱。要实例化给定的对象,试试这个:


type Rule struct {

    handler func() (err error)

    creator string

    args struct {

        extension string

        action string

    }

}


rule := Rule{

    args: struct {

        extension string

        action    string

    }{

        extension: "png,jpg,gif,svg",

        action:    "move",

    },

}

请注意,我列出了结构的参数名称和类型。另请注意,为简洁起见,我删除了folder参数。


如果你想在多行中进行:


rule2 := Rule{}

rule2.args.action = "some-action"


查看完整回答
反对 回复 2023-05-04
  • 1 回答
  • 0 关注
  • 97 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信