我的结构很简单:
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
}
还有其他方法吗? 我在here上找到的唯一其他答案建议完全禁用该检查,但我宁愿不这样做并找到合适的解决方案。
答案 0 :(得分:4)
试试这个:
writer = MyWriter{Writer: io.Stdout}
嵌入式结构具有类型名称本身的隐式键,没有包前缀(例如,在这种情况下,Writer
)。