我有一个简单的结构:
type MyWriter struct {
io.Writer
}
Run Code Online (Sandbox Code Playgroud)
然后按以下方式使用:
writer = MyWriter{io.Stdout}
Run Code Online (Sandbox Code Playgroud)
运行时,go vet这给了我一个composite literal uses unkeyed fields。
为了解决这个问题,我必须MyWriter通过添加密钥将io.Reader转换为结构中的字段?
type MyWriter struct {
w io.Writer
}
Run Code Online (Sandbox Code Playgroud)
还有其他解决方法吗?我在这里找到的唯一其他答案建议完全禁用该检查,但我宁愿不这样做并找到合适的解决方案。
尝试这个:
writer = MyWriter{Writer: io.Stdout}
Run Code Online (Sandbox Code Playgroud)
嵌入式结构具有类型名称本身的隐式密钥,而没有包前缀(例如,在这种情况下为Writer)。