您的当前位置:首页正文

struct 结构体

来源:华佗健康网


概述

初始化结构体

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

  • 完整定义 就是把字段名加上
  • 简要定义 就是省略字段名 自动按照结构体的字段顺序 依次赋值
  • 未定义 则字段就是其类型的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

因篇幅问题不能全部显示,请点此查看更多更全内容