Go语言学习笔记之基础概念——结构体

结构体
  • 结构体是一种数据类型,

    type Person struct{

    name string

    sex byte

    age int

    }

  • 初始化:

    • 顺序初始化:依次将结构体内部所有成员初始化,eg: var man Person = Person{"July",'m',33}
    • 指定成员初始化:未初始化的成员变量,取该数据类型对应的默认值。eg: man : = Person{name:"July",age:33}
  • 使用:

    • 使用“ . ”索引成员变量;
    • 结构体之间的比较只能==或!=,不能是>或者<;
    • 结构体默认是值传递传参,值拷贝->内存消耗大,效率低。
    • 结构体的地址==结构体第一个成员变量地址;从低地址开始分配内存;
    • unSafe.Sizeof(变量名)->变量的所占内存空间大小,单位为字节;
  • 结构体指针

    • 初始化:
      • 顺序初始化:依次将结构体内部所有成员初始化:eg: var man *Person = &Person{"July",'m',33}
      • new(结构体名);eg: new(Person)
    • 使用:
      • 使用“ . ”索引成员变量;
      • 结构体指针的==结构体第一个成员变量地址;
      • unSafe.Sizeof(指针),不管什么类型的指针,在64位操作系统下,大小一致,均为8字节;
      • 当结构体指针做函数返回值的时候,不能返回局部变量的地址值,可以返回局部变量的值。->局部变量保存在栈帧上,函数调用结束后,栈帧释放。局部变量的地址,不再受系统保护,随时可能分配给其它程序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值