go - 修改结构
问题描述
我有一个结构,例如
type Info struct {
Foo string
FooBar string
Services string
Clown string
}
假设我已经填充了前两个字段
input := &Info{
Foo: "true",
Services: "Massage",
}
有没有办法“重新打开”结构以添加缺失的元素。像这样的东西:
input = {
input,
Foobar: "Spaghetti",
Clown: "Carroussel"
}
代替
input.Foobar = "Spaghetti"
input.Clown = "Carroussel"
我有多个字段,只是不太喜欢有很多行 input.Fields。我没有找到类似的东西。所以我想知道。
解决方案
不,该语言的语法不支持这一点。
顺便说一句,您要避免的解决方案包含比理论替代方案更少的行:)(在您的示例中为 2 行与 4 行)。
可以创建一个辅助函数,将非零字段从结构的一个实例复制到另一个,因此您可以使用复合文字创建具有附加字段的结构并将其用作源,但这需要使用反射,即慢,而且这个解决方案不会更具可读性。
请参阅相关:“合并”字段两个相同类型的结构
推荐阅读
- c# - 复杂类型模型的Linq查询
- javascript - 检查阵列是否相同有时不起作用?
- c# - 多个 JOINS 与它们之间的条件:LINQ 查询
- unreal-engine4 - 虚幻引擎 4 引用了一个 pawn actor 并拥有它
- javascript - Javascript onclick 在移动设备上不起作用
- c# - C# 在 .NET Standard 2.0 中使用自定义属性查询 Active Directory
- c# - dotnet publish 不发布 DLL 到发布目录
- unity3d - 怎么去掉两边的黑条
- node.js - NestJS - Mongoose @InjectConnection 单元测试
- vb.net - 将 DataGridView 设置为活动控件