修改结构
Modifying struct
我有一个结构,例如
type Info struct {
Foo string
FooBar string
Services string
Clown string
}
假设我已经填充了前 2 个字段
input := &Info{
Foo: "true",
Services: "Massage",
}
有没有办法“重新打开”结构以添加缺失的元素。像这样:
input = {
input,
Foobar: "Spaghetti",
Clown: "Carroussel"
}
而不是
input.Foobar = "Spaghetti"
input.Clown = "Carroussel"
我有多个字段,只是不太喜欢有很多行 input.Fields。我没有找到类似的东西。所以我想知道。
不,该语言的语法不支持。
顺便说一句,您要避免的解决方案包含的行数少于理论上的替代方案:)(在您的示例中为 2 行对 4 行)。
可以创建一个辅助函数,将非零字段从一个结构实例复制到另一个结构实例,这样您就可以使用复合文字创建一个包含附加字段的结构,并将其用作源,但这需要使用反射,它很慢,而且这个解决方案不会更具可读性。
查看相关内容:
我有一个结构,例如
type Info struct {
Foo string
FooBar string
Services string
Clown string
}
假设我已经填充了前 2 个字段
input := &Info{
Foo: "true",
Services: "Massage",
}
有没有办法“重新打开”结构以添加缺失的元素。像这样:
input = {
input,
Foobar: "Spaghetti",
Clown: "Carroussel"
}
而不是
input.Foobar = "Spaghetti"
input.Clown = "Carroussel"
我有多个字段,只是不太喜欢有很多行 input.Fields。我没有找到类似的东西。所以我想知道。
不,该语言的语法不支持。
顺便说一句,您要避免的解决方案包含的行数少于理论上的替代方案:)(在您的示例中为 2 行对 4 行)。
可以创建一个辅助函数,将非零字段从一个结构实例复制到另一个结构实例,这样您就可以使用复合文字创建一个包含附加字段的结构,并将其用作源,但这需要使用反射,它很慢,而且这个解决方案不会更具可读性。
查看相关内容: