golang的结构体是什么?

golang的结构体是什么?

结构体类型不仅可以关联方法,而且可以有内置元素(又称字段)。结构体类型的声

明一般以关键字type开始,并依次包含类型名称、关键字struct以及由花括号包裹的字

//用于表示针对中文的演示级聊天机器人
type simplecN struct{
name string
talk Talk
}

结构体类型中的每个字段声明都需独占一行。一般情况下,字段声明需由字段名称

和表示字段类型的字面量组成。

还有一种只有类型字面量的无名称字段,称为嵌入字段。虽然嵌入字段可以用来无

缝集成额外字段和方法,但是其嵌入规则和使用规则都比较复杂。为了保持清晰和简单,

通常不建议使用嵌入字段,因此这里不作说明。

golang的结构体是什么?

结构体类型的值一般由复合字面量来表达。复合字面量可以由类型字面量和由花括

号包裹的键值对列表组成。这里,键就是结构体类型中某个字段的名称,而值(或称元

素)就是要赋给该字段的那个值。表示结构体值的复合字面量可以简称为结构体字面量。

在同一个结构体字面量中,一个字段名称只能出现一次。例如,这样是不合法的:

simpleCN{name:"simple.cn",name:"simple.en"}

我们还可以在编写结构体字面量时忽略字段的名称,不过这样做有两个限制。

要么忽略掉所有字段的名称,要么都不忽略。

多个字段值的顺序应该与结构体类型中字段声明的顺序一致,并且不能够省略对

任何一字段的赋值。例如:simplecN{"simple.cn",ni1)是合法的,而simplecNM{nil,

“simple.cn"}和simplecN{"simple.cn"}就不合法。这种限制对于不忽略字段名称的写

法来说是不存在的。在不忽略字段名称的写法中,未被明确赋值的字段会自动被

其类型的零值填充。

与数组类型相同,结构体类型属于值类型,因此结构体类型的零值不是nil。例如,

simplecN的零值就是simplecN{}。

golang的结构体是什么?


分享到:


相關文章: