go - Go 是否支持嵌套类型声明或对匿名结构的文字赋值?
问题描述
我是 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 是否不可能不这样做)?
解决方案
嵌套结构是一件好事,但它们可能会导致一些混乱。要实例化给定的对象,试试这个:
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"
推荐阅读
- typescript - 在 reduce 中使用泛型
- reactjs - React useState 异步更新和 for 循环
- wordpress - 我安装了 Bitnami,然后安装了 XAMPP 服务器,无法访问 wordpress
- java - 使用 Spring Boot JPA 反序列化 JSON 类 Kotlin 的问题
- mysql - mysql - 加入。仅当所有值都与 where 语句匹配时才显示结果
- python-3.x - 如何关闭 IDLE python?
- python - 使用 os.chmod 更改文件的组权限
- r - 将数据框列表转换为 R 中的平面数据表
- javascript - 写入电子邮件时工作表 api 抓取小指数值(例如 e-13)的问题
- python - 序列搜索期间的正则表达式错误