我正在尝试初始化嵌入式结构。然而,编译器说我不能混合值和值初始化器。什么是正确的语法?
httpCl的类型为*requests.Trans
type clTran struct {
*requests.Trans
uCh chan user
}
func main() {
httpCl, err := requests.tr(px)
clT := clTran{httpCl, uCh: uCh}
}
答案 0 :(得分:4)
如果您在结构文字中标记字段(通常应该这样),则需要标记所有字段。在嵌入的情况下,该字段采用其类型的名称。所以
clT := clTran {
Trans: httpCl,
uCh: uCh,
}
请注意,此字段名称也适用于访问和写入,clT.Trans = httpCl
有效并将写入嵌入字段。