千家信息网

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

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,本篇内容主要讲解"怎么使用Go语言基础结构体",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么使用Go语言基础结构体"吧!概述结构体是由一系列具有相同类型
千家信息网最后更新 2025年11月08日怎么使用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语言基础结构体"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

0