听说Go语言没有类?别慌,结构体让你真香!
01 初识结构体:Go的"轻量级类"
刚开始学Go时,很多人都会有个疑问:"Go没有类,怎么面向对象?"这个问题曾让我百思不得其解。
但别担心,Go有结构体——这个全能选手可以轻松应对各种复杂数据场景。
简单来说,结构体就是将一个或多个任意类型的变量组合在一起的聚合数据类型。每个变量都称为结构体的成员。
想象一下,你要处理学生信息:姓名、年龄、成绩等。没有结构体时,你可能要维护多个数组或映射,麻烦且容易出错。
有了结构体,一切就变得优雅起来:
type Student struct {
Name string
Age int
Sex string
Score int
}
看,就是这么简单!我们创建了一个Student类型,把相关的数据字段捆绑在一起。
与传统的面向对象语言不同,Go语言放弃了包括继承在内的大量面向对象特性,只保留了组合这个基础特性。
这种设计哲学让Go的结构体更加简洁和灵活,不像传统类那样沉重。
02 结构体基础:从定义到访问
结构体的定义
定义结构体的语法非常直观:
type 结构体名 struct {
字段1 类型
字段2 类型
...
}
比如,我们要定义一个表示人物的结构体:
type Person struct {
name string
age int
job string
salary int
}
相同类型的字段还可以放在同一行,让代码更紧凑:
type Person struct {
name, job string
age int
salary int
}
访问结构体字段
结构体字段使用点号.来访问,这和其他语言中的对象属性访问非常相似:
func main() {
var pers1 Person
pers1.name = "Hege"
pers1.age = 45
pers1.job = "Teacher"
pers1.salary = 6000
fmt.Println("Name: ", pers1.name)
fmt.Println("Age: ", pers1.age)
fmt.Println("Job: ", pers1.job)
fmt.Println("Salary: ", pers1.salary)
}
运行这段代码,你会看

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



