go学习笔记4 struct

go学习笔记4 struct

是一种数据类型—类型定义(地位等价于int byte bool…)通常放在全局位置

普通变量定义和初始化:

  • 顺序初始化:一次将结构体内部所有成员初始化
type Person struct{
	name string
	sex byte
	age int
}

var man Person = Person{"h","m",18}
  • 指定成员初始化
type Person struct{
	name string
	sex byte
	age int
}
var man Person = Person{
	name:"h",
	age:"18"
}

普通变量的赋值使用:

使用“.”所以成员变量

type Person struct{
	name string
	sex byte
	age int
}
var man Person = Person{
	name:"h",
	age:"18"
}
man.name = "hh"

结构体变量的比较和赋值:

比较:只能使用== 或!= 不能比较大小

结构体传参

将结构体变量的值拷贝一份 传递 ----几乎不用 内存消耗大,效率低。

指针变量定义和初始化:

	type person struct {
		Name string
		Age  int
	}
	
	var sc1 *person = &person{
		Name: "jon",
		Age:  13,
	}

结构体地址:
结构体指针变量的地址 == 结构体首个元素的地址

	type person struct {
		Name string
		Age  int
	}

	var sc1 *person = &person{
		Name: "jon",
		Age:  13,
	}
	fmt.Printf("%p\n", sc1)
	fmt.Printf("%p\n", &sc1.Name)
	fmt.Printf("%p", &sc1.Age)
	// 0xc00000c080
	// 0xc00000c080  
	// 0xc0000a6030                                                                                                                                                                                                                                                                                                             
	

结构体指针作为参数传参

在这里插入图片描述
将结构体变量地址传递(传引用)使用频率非常高!!!!

结构体指针做函数返回值:
不能返回局部变量的地址值。局部变量保存栈帧上,函数调用结束后,栈帧释放局部变量的地址,不再受系统保护,随时可能分配给其他程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值