我是 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"
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消