课程名称:Go 语言语法进阶指南
课程章节:结构体
课程讲师:Gavin
课程内容:
- 创建&初始化
- 属性及函数
- 组合
package struct_demo
import "fmt"
// 定义父类
type Dog Animal {
Colour string
}
// 定义dog结构体
type Dog struct {
Animal //组合,dog这样就包含了Animal
ID int
Name string
Age int
}
// 创建&初始化
func TestForStruct() {
// 1
var dog
dog.ID = 0
dog.Name = "Kiki"
dog.Age = 3
// 2
dog := Dog(ID:1, Name: "YaYa", Age:2)
// 3
dog := new(Dog)
dogID = 3
dog.Name = "Tom"
dog.Age = 4
fmt.Print("dog : ", dog)
}
// 继承
func (d *Dog) Eat() {
fmt.Println("hello! hello!")
}
// 属性及函数
func (d *Dog) Run() {
fmt.Println("ID : ", d.ID, "Dog is running")
}
import "fmt"
func main() {
//Test for struct()
struct_demo.TestForStruct()
//Test for Run()
dog := new(struct_demo.Dog)
dog.ID = 3
dog.Name = "Tom"
dog.Age = 4
dog.color = "red" // 指向父类的属性
dog.Run()
dog.Eat()
}
课程收获:
- 结构体:若干字的结合
- new 出来的结构体是指向类型结构体的指针,传进去一个方法,返回指向 dog 的指针。引用变量类型时要注意
- 通过大小(属性/方法)写控制作用域(private&public)
- 通过组合结构体实现继承