Go语言---结构体

定义一个结构体类型
方法:type 结构体名 struct{}

//定义一个person类
type person struct{
    
    
	Name string 
	Age int
}

结构体初始化操作

a := person{
    
    
	Name : "bai",
	Age : 19,
}

结构体比较方法

如果结构体的成员之间可以比较,那么结构体也是可以比较的,结构体可以使用==或者!=进行比较,不支持> <运算符的比较。

func main(){
    
    
	a:=person{
    
    "bai",19}
	b:=person{
    
    "zhao",20}

	fmt.Println("a == b",a == b)
	fmt.Println("a != b",a != b)
}

在这里插入图片描述
同类型的结构体之间可以进行赋值操作。

	a:=person{
    
    "bai",19}
	var temp person
	temp = a
	fmt.Println("a",a)
	fmt.Println("temp",temp)

在这里插入图片描述

结构体作为函数参数

  • 值传递:形参无法改变实参
func test1(p person){
    
    
	p.Name = "zhao"
	p.Age = 20
	fmt.Println(p)
}
func main(){
    
    
	a:=person{
    
    "bai",19}
	fmt.Println(a)
	test1(a)
	fmt.Println(a)
} 

在这里插入图片描述
值传递无法改变实参

  • 地址传递
func test1(p *person){
    
    
	p.Name = "zhao"
	p.Age = 20
	fmt.Println(p)
}
func main(){
    
    
	a:=person{
    
    "bai",19}
	fmt.Println(a)
	test1(&a)
	fmt.Println(a)
}

在这里插入图片描述
在Go语言中并没有class,因此没有私有成员于共有成员之分,因此在Go语言中,讲私有于共有通过函数首字母大小写进行区分。

  • 大写字母表示,同一个包也可以访问到。
  • 小写字母表示,只能在该文件中进行使用。

猜你喜欢

转载自blog.csdn.net/qq_42708024/article/details/107150393