883 字
约 2 分钟
12
6. Go语言结构体
2026-09-25
无标签
  1. Go语言结构体 秀才 2025年2月14日 大约 3 分钟 Go语言 Go语言 结构体 golang go基础语法 此页内容 1. 结构体定义 2. 结构体初始化 2.1 键值对初始化 2.2 值列表初始化 3. 结构体成员访问 有时候内置的基本类型并不能满足我们的业务需求,我们需要一些复合结构。比如我们想要描述一个学生,1个学生既有学号,年龄,性别,分数等这些属性,而单一的数据类型往往只能描述其中一个属性,我们想要描述这个学生,就需要把这些属性都要描述出来,这个时候就需要用到结构体了。 1. 结构体定义 像很多其他的高级语言一样,go语言也支持结构体来定义复合数据类型 定义方式如下:
type Student struct {
 ID int
 Name string
 Age int
 Score int
}

上述方法定义了一个 Student 类型的结构体, Student 包含四个属性,分别是 string 类型的 Name 和 int 类型的 ID , Age 和 Score 。 2. 结构体初始化 2.1 键值对初始化 在初始化的时候以属性:值的方式完成,如果有的属性不写,则为默认值

package main

import "fmt"

type Student struct {
 ID int
 Name string
 Age int
 Score int
}

func main() {
 st := Student{
 ID : 100,
 Name : "zhangsan",
 Age : 18,
 Score : 98,
 }
 fmt.Printf("学生st: %v\n", st)
}

运行结果:

学生st: {100 zhangsan 18 98}

2.2 值列表初始化 在初始化的时候直接按照属性顺序以属性值来初始化,看下面例子

package main

import "fmt"

type Student struct {
 ID int
 Name string
 Age int
 Score int
}

func main() {
 st := Student{
 101,
 "lisi",
 20,
 97,
 }
 fmt.Printf("学生st: %v\n", st)
}

运行结果:

学生st: {101 lisi 20 97}

注意:以值列表的方式初始化结构体,值列表的个数必须等于结构体属性个数,且要按顺序,否则会报错 3. 结构体成员访问 使用点号 . 操作符来访问结构体的成员, . 前可以是结构体变量或者结构体指针

package main

import "fmt"

type Student struct {
 ID int
 Name string
 Age int
 Score int
}

func main() {
 st1 := Student{
 ID : 100,
 Name : "zhangsan",
 Age : 18,
 Score : 98,
 }
 fmt.Printf("学生1的姓名是: %s\n", st1.Name)
 
 st2 := &Student{
 ID : 101,
 Name : "lisi",
 Age : 20,
 Score : 97,
 }
 fmt.Printf("学生2的分数是: %d\n", st2.Score)
}

运行结果:

学生1的姓名是: zhangsan
学生2的分数是: 97

关注秀才公众号: IT杨秀才 ,领取精品学习资料 公众号后台回复: Go面试 ,领取Go面试题库PDF 公众号后台回复: Go学习 ,领取Go必看书籍 公众号后台回复: 大模型 ,领取大模型学习资料 公众号后台回复: 111 ,领取架构学习资料 公众号后台回复: 26届秋招 ,领取26届秋招企业汇总表

🔥 配套实战项目,拆得开、跑得起、能写进简历 多 Agent 编排 + RAG 混合检索 · 31 篇深度教程 + 50+ 面试题 点击查看 DevSupport AI 实战项目 → 在 GitHub 上编辑此页 上次编辑于: 2026/6/24 23:41:22 贡献者: Percygu , Your Name , gupeng 上一页 5. Go语言运算符 下一页 7. Go语言数组与切片

6. Go语言结构体
https://clxhxhhr.top/posts/3625/
作者
clxstart
发布于
2026-09-25
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。