千家信息网

怎么使用Go语言基础结构体

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"怎么使用Go语言基础结构体",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Go语言基础结构体"吧!概述结构体是由一系列具有相同类型
千家信息网最后更新 2026年11月02日怎么使用Go语言基础结构体

本篇内容主要讲解"怎么使用Go语言基础结构体",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Go语言基础结构体"吧!

概述

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合

语法

定义结构体【标识自定义结构体的名称,在同一个包内不能重复】

type 结构名 struct {  字段1: 字段1的值,  字段2: 字段2的值,  ......}

例子

//学生type Student struct {  Name string   //姓名  Age int       //年龄  Sex bool      //性别 true:男    false:女}

结构体定义的三种形式

第一种【基本的实例化】
var stu Student
第二种【指针类型的结构体】
var stu *Student = new(Student)
第三种【取结构体的地址实例化,通过&的操作】
var stu *Student = &Student{}

初始化结构体

键值对初始化结构体

键值之间以:分隔;键值对之间以,分隔

变量名 := 结构体类型名{
字段1: 字段1的值,
字段2: 字段2的值,
......
}

例子

stu3 := Student{  Name: "李四",  Age: 18}
值列表填充结构体

没有字段,按着序列,必须全部填充

变量名 := 结构体类型名{
字段1的值,
字段2的值,
......
}

stu4 := Student{  "王五",  18,  true,}
匿名结构体

定义结构体时同时赋值

变量名 := struct{
字段1: 字段类型1,
字段2: 字段类型2,
......
}{
// 字段值初始化
字段1: 字段1的值,
字段2: 字段2的值,
......
}

stu5 := struct {  Name string  Age  int}{  Name: "王五",  Age:  18,}
访问结构体成员

赋值、访问都使用"."点这个符号

结构体.字段

var stu Studentstu.Name="张三"         //赋值stu.Age=18stu.Sex=truefmt.Println(stu.Age)   //访问
结构体作为函数参数
func 函数名([结构体变量、结构体指针变量]){}
func printStudent(stu Student) {}func printStudent(stu *Student) {}
结构体指针

使用结构体指针访问结构体成员,使用 "." 操作符。

var 变量名 *结构名
var stu1 *Student = new(Student)stu1.Name = "李四"stu1.Age = 20stu1.Sex = false
添加结构体方法

给结构体添加方法,在func和方法名之间加一个括号,加入该结构体的指针引用【也可以是值引用】

func ([结构体名]) 方法名([参数列表])[返回值列表]{}

例子

var stu Studentstu.Name = "张三"stu.Age = 18stu.Sex = false//调用stu.sayHi()//添加结构体方法func (stu Student) sayHi() {        fmt.Println(stu.Name, "Hi")}

总结

golang是非面向对象语言,也可以说go语言中的结构体类似java中的类,但是很明显缺少继承多态等等OO的特性

指针变量通过.访问结构体成员,如果是C或者C++一定要通过*访问,这是Go对它的一个优化

示例

package mainimport "fmt"//定义结构体【标识自定义结构体的名称,在同一个包内不能重复】type Student struct {        Name string        Age  int        Sex  bool}func main() {        //struct定义的三种形式        var stu Student        stu.Name = "张三"        stu.Age = 18        stu.Sex = false        fmt.Println(stu)        var stu1 *Student = new(Student)        stu1.Name = "李四"        stu1.Age = 20        stu1.Sex = false        fmt.Println(stu1)        var stu2 *Student = &Student{}        stu2.Name = "王五"        stu2.Age = 55        stu2.Sex = true        fmt.Println(stu2)        //初始化结构体        stu3 := Student{                Name: "李四",                Age:  18}        fmt.Println(stu3)        stu4 := Student{                "王五",                18,                true,        }        fmt.Println(stu4)        //匿名结构体        stu5 := struct {                Name string                Age  int        }{                Name: "王五",                Age:  18,        }        fmt.Println(stu5)        // printStudent(stu)        printStudent(stu1)        stu.sayHi()}//添加结构体方法func (stu Student) sayHi() {        fmt.Println(stu.Name, "Hi")}// func printStudent(stu Student) {//         fmt.Println(stu.Name, stu.Age, stu.Sex)// }func printStudent(stu *Student) {        fmt.Println(stu.Name, stu.Age, stu.Sex)}

到此,相信大家对"怎么使用Go语言基础结构体"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

结构 字段 变量 方法 类型 指针 语言 王五 李四 基础 语言基础 之间 例子 成员 张三 三种形式 内容 函数 参数 名称 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技名片 科技金融是不是互联网金融 中国互联网科技股 互联网属科技 科技互联网公司装修 腾讯阿里互联网科技 互联网科技英文 北京互联网络科技有限公司 济南和联互联网科技有限公司 隆华科技工业互联网 顶级互联网科技成果有哪些 广州市恰铎互联网科技有限公司 互联网金融科技名词解释 合肥互联网科技公司公章图片 江苏苏星互联网科技有限公司 四川互联网展示科技馆设计 互联网科技手抄报图片 黑龙江互联网科技公司 上海旺乐尼互联网科技有限公司 互联网科技创业有什么好项目 广州百单互联网科技有限公司 远信互联网科技 互联网科技项目计划书材料类 武汉健翔互联网络科技有限公司 宝灵互联网科技有限公司 云南省自由互联网科技有限公司 浙南科技城互联网大厦招聘 互联网科技包装股 科技互联网经济论坛 米泉互联网科技专业怎么样
0