struct 结构体

目录

概述

初始化结构体

修改结构体

 结构体指针

 总结


概述

结构体是golang中复杂数据类型的一种, 和ts中为对象定义类型时极其相似, 结构体一般包含一组字段并指定类型, 在创建结构体实例时依据指定字段的类型创建即可, 若创建时没有给定字段, 则默认为其类型的零值

初始化结构体

初始化结构体大致分为三种情况, 完整定义, 简要定义, 未定义

  • 完整定义 就是把字段名加上
  • 简要定义 就是省略字段名 自动按照结构体的字段顺序 依次赋值
  • 未定义 则字段就是其类型的0值
package main

import (
	"fmt"
)
// 定义一个结构体
type Person struct {
	name string
	age int
}
func main() {
	fmt.Println("完整定义person", Person{name: "张三", age: 18})
	fmt.Println("简要定义person", Person{"张三", 18})
	fmt.Println("未定义person", Person{})
}

修改结构体

直接通过实例.就能进行修改

package main

import (
	"fmt"
)
type Person struct {
	name string
	age int
}
func main() {
	zs := Person{"张三", 20}
	fmt.Println("zs", zs)
	zs.age = 30
	fmt.Println("zs", zs)
}

 

 结构体指针

我们可以创建指向结构体的指针, 正常情况下访问指针对应的值应该这么写 *p , 继而访问结构体的字段 我们需要这么写 (*p).x, 写起来略显麻烦, golang允许我们进行隐式间接访问, 直接p.x就可进行修改

package main

import (
	"fmt"
)
type Person struct {
	name string
	age int
}
func main() {
	zs := Person{"张三", 20}
	p := &zs
	p.name = "张三是法外狂徒"
	(*p).age = 18
	fmt.Println("zs", zs)
}

 总结

  • 结构体是复杂数据类型
  • 初始化可分为三种方式
  • 初始化字段时未填即为零值
  • 结构体指针 (*p)可简写为p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值