第九节——结构体

结构体的定义

  1. 定义格式:
type 类型名 struct {
    
    
    字段名 字段类型
    字段名 字段类型
    …
}
  1. 例子:
type person struct {
    
    
	name string
	city string
	age  int8
}

结构体实例化

  1. 格式:var 结构体实例 结构体类型
  2. 例子:
type person struct {
    
    
	name string
	city string
	age  int8
}

func main() {
    
    
	var p1 person
	p1.name = "沙河娜扎"
	p1.city = "北京"
	p1.age = 18
	fmt.Printf("p1=%v\n", p1)  //p1={沙河娜扎 北京 18}
	//第二种方法
	p5 := person{
    
    
	name: "小王子",
	city: "北京",
	age:  18,
	}
}

自定义结构体的构造函数

  1. 定义:Go语言的结构体没有构造函数,我们可以自己实现。
  2. 举例:
//Person 结构体
type Person struct {
    
    
	name string
	city string
	age  int8
}
//定义构造函数
func newPerson(name, city string, age int8) *person {
    
    
	return &person{
    
    
		name: name,
		city: city,
		age:  age,
	}
}
//调用
p9 := newPerson("张三", "沙河", 90)
fmt.Printf("%#v\n", p9) //&main.person{name:"张三", city:"沙河", age:90}

结构体中的方法

  1. 定义:Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者 self。
  2. 格式:
func (接收者变量 接收者类型) 方法名(参数列表) (返回参数) {
    
    
    函数体
}
  1. 举例:
//Person 结构体
type Person struct {
    
    
	name string
	age  int8
}
//Dream Person做梦的方法
func (p Person) Dream() {
    
    
	fmt.Printf("%s的梦想是学好Go语言!\n", p.name)
}

func main() {
    
    
	p1 := NewPerson("小王子", 25)
	p1.Dream()
}

おすすめ

転載: blog.csdn.net/qq_37589805/article/details/121509690