Bootstrap

go语言初探 八

结构体、方法、接口
Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。

结构体定义:
type identifier struct {
field1 type1
field2 type2

}

结构体实例创建
s1 := new(Student) //第一种方式
s2 := Student{“james”, 35} //第二种方式
s3 := &Student { //第三种方式
Name: “LeBron”,
Age: 36,
}

下图中 C中的X覆盖了A中的X
在这里插入图片描述
方法
定义:
func (r Receiver)func_name(){
// body
}

方法接收者可以为值接收者或指针接收者。
影响如C++

接口
在go语言中不需要显示的去实现接口,只要一个类型实现了该接口中定义的所有方法就是默认实现了该接口,而且允许多个类型都实现该接口,也允许一个类型实现多个接口。
一对多 多对一 多对多

定义
type Namer interface {
Method1(param_list) return_type
Method2(param_list) return_type

}

类型断言
func IsDog(a Animal) bool {
if v, ok := a.(Dog); ok {
fmt.Println(v)
return true
}
return false
}

assert???

;