2014-12-23 42 views
14

为什么我不能使用匿名字段创建以下内容?混合字段:值和值初始值设定项

type T1 struct { 
    T1_Text string 
} 

type T2 struct { 
    T2_Text string 
    T1 
} 
在FUNC使用

..

t := T2{ 
    T2_Text: "Test", 
    T1{T1_Text: "Test"}, 
} 

给我:值初始化值和:现场的混合?

+6

语法刚刚关闭:'T1:T1 {...}'。 – twotwotwo

+1

叶夫,谢谢 –

回答

3

简要说明。

你得到这个的原因是因为你只允许使用两种类型的初始值设定项中的一种,而不是两种。

即您可以使用字段:值值。

使用您的例子中,你要么做

领域:价值

t := T2{ 
    T2_Text: "Test", 
    T1: T1{T1_Text: "Test"}, 
} 

或只重视

t := T2{ 
    "Test", 
    T1{"Test"}, 
} 

希望这解释了为什么

14

缺失属性名称T1进行分配。

t := T2{ 
    T2_Text: "Test", 
    T1:  T1{T1_Text: "Test"}, 
} 

P.S.刚把@ twotwotwo的评论移到了答案上。

相关问题