1.我会总结我自己认为Golang中的几个常用知识点的基础
每个人都有自己的认识,我只表达我的见解
2.我会说以下几点
- go语言的接口
- go语言结构体的特性
- channel
- goroutine
步入正题
1.go语言的接口
- 接口就是一些方法特征的集合,可以定义一些方法,这些方法可以不实现。
- 有点抽象说不能明白,代码演示
package main
import (
"fmt"
)
type Att interface{
name()
age()
}
type Jack struct{
}
func (j Jack)name(){
fmt.Println("jack name:jack")
}
func (j Jack)age(){
fmt.Println("jack age:18")
}
type Tom struct{
}
func(t Tom)name(){
fmt.Println("Tom name:Tom")
}
func(t Tom)age(){
fmt.Println("Tom age:15")
}
type Student struct{
}
func(S Student)show(att Att){
att.name()
att.age()
}
func main (){
jack:=Jack
tom:=Tom
student :=Student
student.show(jack)
student.show(tom)
}
终端显示为 jack name:jack jack age:18 Tom name:Tom Tom age :15
- 这是定义Att的接口,来承载name()age()两个未实现的方法
- func(S Student)show(att Att)这个是用来接收Att的接口类型,att变量会根据传入的参数,来判断是jack还是tom
- 注意细节
- 一个类型能实现多个接口,不同类型也能实现统一接口
- 接口中不能含有变量
结构体的特性
1.封装
基本介绍:封装就是把抽象的字段和对字段的操作封装在一起,数据被保护在内部,程序的其他包只有通过被授权的操作才能对字段进行操作
说不出来个所以然...我太菜了,我理解的就是把结构体封装隐藏,通过工厂模式构造外部函数对结构体进行操作
2.继承
我认为就是结构体的嵌套 代码演示
type Student struct{
name string
age int
}
type Person struct{
Student //此结构体的内容已经继承在 Person结构体中
address string
}
- Student结构体继承在Person结构体中
- Person 结构体中含有 三个字段 name age address
- 其结构体的方法一样能在继承结构体中调用
3.多态
- 多态是通过一个接口调用不同的的实现来展现的,这时的接口变量就呈现不同的形态
- 例如前面的func(S Student)show(att Att)方法中,att展现了多态,既能调用jack结构体,又能调用Tom结构体
下边两个下个文章再写,时间不够了,要去上课了,吼吼吼