前言:
type是go语法里的重要而且常用的关键字,搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用
用法一:定义结构体
type student struct {
name string
age int
class string
}
用法二:类型别名(相当于给一个变量类型重新起了一个名字,用法类似于c/c++的typedef)
type str string //str为string类型
用法三:结构体内嵌匿名成员
//结构体内嵌匿名成员定义
type person struct {
string //直接写类型,匿名
age int
}
func main() {
//结构体匿名成员初始化:可以省略部分字段,如:person{string: "taozs"}。也可以这样省略字段名:person{“taozs”, 18},但必须写全了,不可以省略部分字段
p := person{string: "taozs", age: 18}
//结构体匿名成员访问
fmt.Println(p.string) //注意不能用强制类型转换(类型断言):p.(string)
}
用法四:定义接口
//接口定义
type Personer interface {
Run()
Name() string
}
//实现接口,注意实现接口的不一定只是结构体,也可以是函数对象,参见下面第5条
type person struct {
name string
age int
}
func (person) Run() {
fmt.Println("running...")
}
//接收参数person不可以是指针类型,否则不认为是实现了接口
func (p person) Name() string {
return p.name
}
用法五:定义函数类型
//以下是定义一个函数类型handler
type handler func(name string) int
//针对这个函数类型可以再定义方法,如:
func (h handler) add(name string) int {
return h(name) + 10
}
有疑问加站长微信联系(非本文作者)