golang:struct

在golang中,struct类型能够将其他数据类型组合或内嵌在一起,struct是复合类型。
struct不同初始化方式
// Point结构体类型定义
type Point struct {
    x, y int
}

// 结构体类型的声明及初始化
var p Point    //使用var声明一个Point对象,分配内存
var p *Point  //使用var声明一个Point类型的指针,Point对象未分配内存
p := new(Point) //使用new关键字返回一个指向Point对象的指针,分配内存
p := Point{}    //使用字面量初始化
p := Point{x: 10, y: 20} //使用字面量初始化
struct中的内嵌类型

在struct类型中,字段名必须是唯一的,也就是说如果有嵌入的类型,则嵌入类型的字段名也必须是唯一的

// A struct with four embedded fields of types T1, *T2, P.T3 and *P.T4
struct {
    T1        // field name is T1
    *T2       // field name is T2
    P.T3      // field name is T3
    *P.T4     // field name is T4
    x, y int  // field names are x and y
}

// 下面的声明的struct是不合法的
struct {
    T     // conflicts with embedded field *T and *P.T
    *T    // conflicts with embedded field T and *P.T
    *P.T  // conflicts with embedded field T and *T
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容