Struct 如何定义嵌入/匿名字段(go结构)

Struct 如何定义嵌入/匿名字段(go结构),struct,go,literals,Struct,Go,Literals,我正在尝试初始化一个嵌入式结构。但是编译器说我不能混合使用值和值初始值设定项。正确的语法是什么? httpCl属于*请求类型。Trans type clTran struct { *requests.Trans uCh chan user } func main() { httpCl, err := requests.tr(px) clT := clTran{httpCl, uCh: uCh} } 如果在结构文本中标记字段(通常应该这样做),则所有字段都需要标

我正在尝试初始化一个嵌入式结构。但是编译器说我不能混合使用值和值初始值设定项。正确的语法是什么? httpCl属于
*请求类型。Trans

type clTran struct {
    *requests.Trans
    uCh chan user
}

func main() {
    httpCl, err := requests.tr(px)
    clT := clTran{httpCl, uCh: uCh}
}

如果在结构文本中标记字段(通常应该这样做),则所有字段都需要标记。在嵌入的情况下,字段采用其类型的名称。所以

clT := clTran {
    Trans: httpCl,
    uCh: uCh,
}

请注意,此字段名称也适用于访问和写入,
clT.Trans=httpCl
有效,并将写入嵌入字段。

如果有两个不同类型但具有相同类型名称的匿名字段,该怎么办?e、 g.requests.Trans和brequests.Trans?在这种情况下,订单很重要。@fuzzxl我很难在说明书中找到这一点。提到了吗?