转自: https://studygolang.com/articles/11313

golang中是没有class的,但是有一个结构体struct,有点类似,他没有像java,c++中继承的概念,但是他有一个类似功能的结构嵌入

简单的结构体声明和使用

type User struct{name stringage intaddress string
}user:= User{name:"测试",age:10}
user.address="广州市"
f.Println(user)

匿名结构体

person:= struct {//匿名结构name stringage int}{name:"匿名",age:1}f.Println("person:",person)

函数中结构体作为参数,如果不是用结构指针,函数内参数属性的改变不影响原来对象的属性的改变

//值拷贝,不改变原来的User对象值
func us(user User){ user.name="值拷贝";user.age=12user.address="珠海市"f.Println("user in us:",user)
}//声明调用
user:=User{}
us(user)//指针,改变原来的User对象值
func use(user *User){ user.name="指针"user.age=15user.address="深圳市"f.Println("user in use:",*user)
}//声明调用
user:=User{}
use(&user)

go语言中虽然没有继承,但是可以结构内嵌,达到类似继承的效果

type Info struct {sex intname stringage intaddress string
}type User struct{like stringInfo
}type Admin struct {unlike stringInfo
}user:= User{}
user.sex=0
user.address="广州市"
user.like="游戏"
f.Println(user)admin:= Admin{Info:Info{sex:1}}//还可以这样声明一些属性值,因为Info是结构体,匿名,所以需要这样声明
admin.address="广州市"
admin.unlike="游戏"
f.Println(admin)

如果嵌入结构的字段和外部结构的字段相同,那么,想要修改嵌入结构的字段值需要加上外部结构中声明的嵌入结构名称

type Info struct {sex intname stringage intaddress string
}type User struct{like stringsex intInfo
}user:=User{}
user.sex=1//这里修改的外部结构User里面的sex字段值
user.Info.sex=2//这里修改的是嵌入结构Info的sex字段值

转载于:https://www.cnblogs.com/nyist-xsk/p/11226844.html

Golang结构体struct的使用(结构体嵌套, 匿名结构体等)相关推荐

  1. go结构体初始化_go嵌套匿名结构体的初始化详解

    go匿名结构体 嵌套匿名结构体的 示例代码片. type debugConfig struct { MaxQueueDepth int `json:"maxQueueDepth"` ...

  2. Go 学习笔记(14)— 结构体定义、实例化、初始化、匿名结构体、结构体访问、结构体作为形参、结构体指针

    Go 语言中没有 "类" 的概念,也不支持 "类" 的继承等面向对象的概念.Go 语言不仅认为结构体能拥有方法,且每种自定义类型也可以拥有自己的方法. 1. 结 ...

  3. Golang 匿名结构体及测试代码编写技巧

    转自: https://www.jianshu.com/p/901820e17ffb 结构体基础 结构体 (struct) 将多个不同类型的字段集中组成一种复合类型,按声明时的字段顺序初始化. typ ...

  4. 结构体-struct

    struct struct的声明 struct的定义 struct的初始化 先声明再赋值 声明同时初始化 键值对初始化 值列表初始化 注意事项 匿名结构体 指针类型结构体初始化 先声明再赋值 声明同时 ...

  5. 结构体struct的自然对齐问题(经典)

    结构体struct的自然对齐问题下面的机构体 struct A {     char c;     int i;     char cc; }; 它的sizeof()是多少呢? 如果是紧凑对齐的话,当 ...

  6. [ C语言 ]指针---结构体(struct)---分支语句(1)---初识C语言末尾

    文章目录 前言 一,指针 二,结构体(struct) 三,分支语句(选择结构) 总结​​​​ 前言 本篇文章主要记录指针末尾,结构体,和分支语句(选择结构) --------------------- ...

  7. c语言结构体定义蚂蚁,C语言结构体(struct)常见使用方法

    C语言结构体(struct)常见使用方法 C语言结构体(struct)常见使用方法 基本定义:结构体,通俗讲就像是打包封装,把一些有共同特征(比如同属于某一类事物的属性,往往是某种业务相关属性的聚合) ...

  8. Golang 入门 : 结构体(struct)

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型.试图表示一个现实世界中的实体. 结构体由一系列命名的元素组成,这些元素又被称为字段,每个字段都有一个名称和 ...

  9. golang 结构体struct、数组、结构体数组 定义与赋值 、json string转struct

    文章目录 1.结构体struct 1.1 声明结构体 1.2 初始化结构体 以及 传参 2. 结构体数组.append 3. 接口返回 含数组的结构体 常用写法 json string转struct ...

最新文章

  1. 突发!Log4j 爆“核弹级”漏洞,Flink、Kafka等至少十多个项目受影响
  2. 软件调试学习笔记(二)—— 调试事件的采集
  3. 剑网三虽然是游戏,但场面堪比电影大片,发布会会带来什么惊喜?
  4. 程序员体健康的各项指标是多少?
  5. 补习系列(9)-springboot 定时器,你用对了吗
  6. jquery的validate表单验证表单注册插件
  7. Leetcode 刷题笔记(二) —— 数组类型解题方法二:双指针法
  8. 阿里云keepalived的虚拟ip怎么让外网访问_Keepalived双机热备
  9. simulink之S函数
  10. IDEA 设置导入/导出
  11. 计算机装系统找不到硬盘分区,系统安装找不到现有分区,教您如何解决系统安装找不到现有分区...
  12. Pos应用与扫盲一路通
  13. 面试之你为什么从上家公司离职
  14. 咪咕阅读怎么下载小说
  15. 苹果系统macos腾讯企点无法打开麦克风权限
  16. c语言程序设计西华大学,知到C语言程序设计(西华大学)章节答案
  17. Android开发该学习哪些东西?
  18. jsp中List,ArrayList的使用方法
  19. 晶体管分类、符号及作用
  20. 走遍美国 —— 各州及其别名

热门文章

  1. objc swift 混编
  2. 想做一个整合开源安全代码扫描工具的代码安全分析平台 - Android方向调研
  3. Yii AR Model 查询
  4. ArcGIS Server for Silverlight 之集群(Simple Clusterer)
  5. 采用HttpModules来重写URLs(实践篇)
  6. Leetcode 160.相交链表
  7. 2022QS世界大学排名:清北跻身世界前20
  8. Python语言编程之LEGB变量作用域法则
  9. 代码注释规范-google版本
  10. 对于bhuman中striker文件解析