Go语言入门心法(一)
Go语言入门心法(二): 结构体
一:go语言接口认知
Go语言中接口认知升维:
解决人生问题的自我引导法则: 复盘思维|结构化思维|金字塔思维|体系化思维|系统化思维
面向对象编程(oop)三大特性: 封装,继承,多态
Go语言中,可以认为接口是一种自定义的抽象数据类型,既然是数据类型,那么久可以使用接口声明变量等操作;
它不会暴露出它所代表的内部属性的结构,它只会展示出它自己的方法,因此不能将接口类型实例化;
根据go语言规范,单个函数的接口命名为函数名加上"er"作为后缀;例如:Writer,Reader,Formatter等。
接口命令规范如下:
(1)当个函数名的接口名以"er"作为后缀,接口的实现则去掉“er”字符串
(2)go语言的接口是方法的集合,使用接口是实现模块化的重要方式;接口是用来定义行为类型的,这些被定义的行为不由接口直接实现
(3)与其他语言不同的是,Go语言的接口没有数据字段(接口成员变量),只有定义的方法
定义接口与订阅结构体类似,定义需要使用type关键字和interface关键字
type 接口名称 interface {
Method()
}
package main
// Animal 定义接口
type Animal interface {
Named() string // 接口的方法,返回值类型为string
Speak() string
}
type Cat struct {
}
type Dog struct {
}
func (cat Cat) Named() string {
return "Cat:named()-cat"
}
// Speak 实现接口Animal的Speak()抽象方法
func (cat Cat) Speak() string {
return "Cat:speak()-cat"
}
func (dog Dog) Named() string {
return "Dog:named()-dog"
}
func (dog Dog) Speak() string {
return "Dog:speak()-dog"
}
func main() {
println(`
Go语言中接口认知升维:
解决人生问题的自我引导法则: 复盘思维|结构化思维|金字塔思维|体系化思维|系统化思维
面向对象编程(oop)三大特性: 封装,继承,多态
Go语言中,可以认为接口是一种自定义的抽象数据类型,既然是数据类型,那么久可以使用接口声明变量等操作;
它不会暴露出它所代表的内部属性的结构,它只会展示出它自己的方法,因此不能将接口类型实例化;
根据go语言规范,单个函数的接口命名为函数名加上"er"作为后缀;例如:Writer,Reader,Formatter等。
接口命令规范如下:
(1)当个函数名的接口名以"er"作为后缀,接口的实现则去掉“er”字符串
(2)go语言的接口是方法的集合,使用接口是实现模块化的重要方式;接口是用来定义行为类型的,这些被定义的行为不由接口直接实现
(3)与其他语言不同的是,Go语言的接口没有数据字段(接口成员变量),只有定义的方法
定义接口与订阅结构体类似,定义需要使用type关键字和interface关键字
type 接口名称 interface {
Method()
}
`)
println()
println("=================================定义接口==========================")
// 非指针实例化对象
var cat = Cat{}
var dog = &Dog{}
println("我的小猫咪: ", cat.Named())
println("我的小猫咪: ", cat.Speak())
println("我的小旺财: ", dog.Named())
println("我的小旺财: ", dog.Speak())
}
运行效果:
GOROOT=D:\program_file_worker\go1.20 #gosetup
GOPATH=D:\program_file_worker\go1.20\bin;C:\Users\Administrator\go #gosetup
D:\program_file_worker\go1.20\bin\go.exe build -o C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPToInterfaceGrammar_go.exe D:\program_file\go_workspace\org.jd.data\interface\OOPToInterfaceGrammar.go #gosetup
C:\Users\Administrator\AppData\Local\Temp\GoLand\___go_build_OOPToInterfaceGrammar_go.exeGo语言中接口认知升维:
解决人生问题的自我引导法则: 复盘思维|结构化思维|金字塔思维|体系化思
维|系统化思维
面向对象编程(oop)三大特性: 封装,继承,多态
Go语言中,可以认为接口是一种自定义的抽象数据类型,既然是数据类型,那么久可
以使用接口声明变量等操作;
它不会暴露出它所代表的内部属性的结构,它只会展示出它自己的方法,因此不能将接口类型实例化;
根据go语言规范,单个函数的接口命名为函数名加上"er"作为后缀;例如:Writer,Reader,Formatter等。
接口命令规范如下:
(1)当个函数名的接口名以"er"作为后缀,接口的实现则去掉“er”字符串
(2)go语言的接口是方法的集合,使用接口是实现模块化的重要方式;接口是用来定义行为类型的,这些被定义的行为不由接口直接实现=================================定义接口==========================
我的小猫咪: Cat:named()-cat
我的小猫咪: Cat:speak()-cat
我的小旺财: Dog:named()-dog
我的小旺财: Dog:speak()-dogProcess finished with the exit code 0
忙着去耍帅,后期补充完整。。。。。