struct
Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型 person 代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示:
type person struct {
name string
age int
}
看到了吗?声明一个struct如此简单,上面的类型包含有两个字段
- 一个string类型的字段name,用来保存用户名称这个属性
- 一个int类型的字段age,用来保存用户年龄这个属性
如何使用struct呢?请看下面的代码
type person struct {
name string
age int
}
var P person // P 现在就是 person 类型的变量了
P.name = "Astaxie" // 赋值 "Astaxie" 给 P 的 name 属性 .
P.age = 25 // 赋值 "25" 给变量 P 的 age 属性
fmt.Printf("The person's name is %s", P.name) // 访问 P 的 name 属性 .
除了上面这种P的声明使用之外,还有两种声明使用方式
- 1.按照顺序提供初始化值
P := person{“Tom”, 25} - 2.通过 field:value 的方式初始化,这样可以任意顺序
P := person{age:24, name:“Tom”}
下面我们看一个完整的使用struct的例子
package main
import "fmt"
// 声明一个新的类型
type person struct {
name string
age int
}
// 比较两个人的年龄,返回年龄大的那个人,并且返回年龄差
// struct 也是传值的
func Older(p1, p2 person) (person, int) {
if p1.age>p2.age {
// 比较 p1 和 p2 这两个人的年龄
return p1, p1.age-p2.age
}
return p2, p2.age-p1.age
}
func main() {
var tom person
// 赋值初始化
tom.name, tom.age = "Tom", 18

最低0.47元/天 解锁文章

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



