在 Go 语言中类似 Java 类的概念叫做结构体,使用 type, struct
两个关键词修饰
开始
定义结构体
1 | type User struct { |
结构体的属性希望被外部访问则首字母大写,否则小写。
实例化
结构体实例化有很多种方式
- 普通实例化
1 | var a User |
1 | a := User{1, "wxnacy"} |
1 | a := User(Id: 1, Name: "wxnacy") |
- 指针实例化
使用 new(T)
或者 $T{}
的方式实例化,并返回指针
1 | a := new(User) |
1 | a := &User{1, "wxnacy"} |
访问成员变量
1 | a := User{1 "wxnacy"} |
定义结构体方法
结构体的方法不像 Java 一样是写在类内部的,反而像 Javascript 一样是写在外部的。
1 | func (this User) ToString string{ |
访问
1 | u := User{1, "wxnacy"} |
方法名 ToString
前面的形参是实例化后的结构体将本身拷贝出一份传入的,所以如果想在方法内修改结构体的属性值,需要将形参改为指针。
1 | func (this *User) SetId(id int){ |
即使将结构体实例化为指针,也要这样写,应为传入的拷贝是普通实例化的数据
继承
1 | type Human struct { |
结构体 Man 将 Human 作为成员定义在成员列表即可
1 | h := Human{Msg: "I am a Human"} |
最近热读
扫码关注公众号,或搜索公众号“温欣爸比”
及时获取我的最新文章