ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

golang学习-结构体

2026/8/8 8:45:20 拓冰建站 浏览量
golang学习-结构体
1、定义

使用type 和struct 关键字来定义结构体,是值类型

格式如下:

type 类型名 struct {

        字段名 类型

        字段名 类型

        ...

}

2、实例化

1、var 结构体实例 结构体类型    var p1 Person  

2、使用new关键字   var p2 = new(Person)

3、使用&对结构体进行取地址操作 p3:=&Person{}

第二种和第三种返回的是指针类型

4、键值对初始化

p4:= Person {

        name :"李四",

}

5、&取内存地址

p5:=&Person{

        name :"李四",

}

6、简写 不指名key 直接写value

p6:=&Person{

        "张三

"

}

 结构体首字母大写表示结构体共有,在其他包里可以使用。首字母小写表示结构体私有,只能在这个包里使用。

在golang中 支持对结构体指针直接使用.来访问结构体的成员   p2.name = "张三",其在底层是(*p2).name="张三"

3、结构体的匿名字段

结构体允许成员字段声明时没有字段名只有类型,这种没有名字的字段叫匿名字段。匿名字段默认采用类型名作为字段名,因此类型不能重复。

type Person {

        string

        int

}

4、结构体嵌套

当访问结构体成员时会先在结构体中查找该字段,找不到再去匿名结构体中查找、

type User struct {Username stringAge      intAddress  Address
}
type Address struct {Name  stringphone string
}func main() {var u = new(User)u.Username = "张三"u.Age = 20u.Address.Name = "不会"u.Address.phone = "1233"// fmt.Printf("%#v", u)fmt.Println(&u.Address)
}

 golang中使用结构体嵌套来实现继承。