【GoLang】GoLang struct 使用
2024-10-19 03:36:36
代码示例:
package main import "fmt" type Human struct {
name string
age int
weight int
} type Student struct {
Human // 匿名字段,那么默认Student就包含了Human的所有字段
speciality string
} func main() {
// 我们初始化一个学生
mark := Student{Human{"Mark", , }, "Computer Science"} // 我们访问相应的字段
fmt.Println("His name is ", mark.name)
fmt.Println("His age is ", mark.age)
fmt.Println("His weight is ", mark.weight)
fmt.Println("His speciality is ", mark.speciality)
// 修改对应的备注信息
mark.speciality = "AI"
fmt.Println("Mark changed his speciality")
fmt.Println("His speciality is ", mark.speciality)
// 修改他的年龄信息
fmt.Println("Mark become old")
mark.age =
fmt.Println("His age is", mark.age)
// 修改他的体重信息
fmt.Println("Mark is not an athlet anymore")
mark.weight +=
fmt.Println("His weight is", mark.weight) mark.Human = Human{"aaa", , }
mark.Human.age +=
fmt.Println(mark)
}
004.struct类型
1 type声明新类型
1.1 type testInt func(int) bool // 声明了一个函数类型
1.2 type person struct //声明一个结构体类型
1.3 struct与array一样是值类型,作为参数会copy完整数据; slice、map、channel等传递的是数据的内存地址
2 初始化
2.1 顺序初始化
2.1.1 var p Person = Person{"aaa", 123}
2.2 指定参数初始化
2.2.1 p = Person{name: "test", age: 456}
2.3 new指针初始化
2.3.1 var pp *Person = new(Person)
3 匿名访问
3.1 组合关系的struct可以直接通过被继承字段访问
3.2 也可以通过struct名称访问
3.3 struct不仅仅能够将struct作为匿名字段、自定义类型、内置类型都可以作为匿名字段, 而且可以在相应的字段上面进行函数操作
3.4 允许我们去重载通过匿名字段继承的一些字段, 当然如果我们想访问重载后对应匿名类型里面的字段,可以通过匿名字段名来访问
最新文章
- phpMoadmin CVE-2015-2208 远程代码执行漏洞分析
- IIS负载均衡的NLB解决方案
- 终于解决SQL Server 2008 64位系统无法导入Access/Excel的问题 2012/08/01
- 2016 系统设计第一期 (档案一)MVC 控制器接收表单数据
- opencv行人检测里遇到的setSVMDetector()问题
- php基础知识【oop/mvc/orm/aop】
- 使用x manager 连接Linux桌面
- c#语言基础之组成结构
- 上海及周边地区产品技术创业QQ群:98905958
- N皇后问题——递归求解
- Android 学习笔记之实时保存数据-现场保护onSaveInstanceState()
- [AHOI2012]树屋阶梯
- 1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)
- lk中内联调用的dsb()
- 类Objects
- 2008R2 部署 aspnetcore repair failed 函数不正确
- IdentityServer4-客户端定义-翻译
- WebGIS前端地图显示之根据地理范围换算出瓦片行列号的原理(核心)
- Light Probe
- 进程 day36