去审核:“复合文字使用无键字段”,嵌入类型

时间:2018-03-24 04:51:44

标签: go warnings

我的结构很简单:

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上找到的唯一其他答案建议完全禁用该检查,但我宁愿不这样做并找到合适的解决方案。

1 个答案:

答案 0 :(得分:4)

试试这个:

writer = MyWriter{Writer: io.Stdout}

嵌入式结构具有类型名称本身的隐式键,没有包前缀(例如,在这种情况下,Writer)。