去兽医:"composite literal uses unkeyed fields" 与嵌入式类型
Go vet: "composite literal uses unkeyed fields" with embedded types
我有一个简单的结构:
type MyWriter struct {
io.Writer
}
然后我按以下方式使用它:
writer = MyWriter{io.Stdout}
当 运行 go vet
这给了我一个 composite literal uses unkeyed fields
.
为了解决这个问题,我是否必须通过添加键将 io.Reader 变成 MyWriter
结构中的一个字段?
type MyWriter struct {
w io.Writer
}
还有其他解决办法吗?
我在 上找到的唯一其他答案建议完全禁用检查,但我宁愿不这样做并找到合适的解决方案。
试试这个:
writer = MyWriter{Writer: io.Stdout}
嵌入式结构有一个类型名称本身的隐式键,没有包前缀(例如,在这种情况下,Writer
)。
我有一个简单的结构:
type MyWriter struct {
io.Writer
}
然后我按以下方式使用它:
writer = MyWriter{io.Stdout}
当 运行 go vet
这给了我一个 composite literal uses unkeyed fields
.
为了解决这个问题,我是否必须通过添加键将 io.Reader 变成 MyWriter
结构中的一个字段?
type MyWriter struct {
w io.Writer
}
还有其他解决办法吗?
我在
试试这个:
writer = MyWriter{Writer: io.Stdout}
嵌入式结构有一个类型名称本身的隐式键,没有包前缀(例如,在这种情况下,Writer
)。