1、定义结构体
//结构体定义
type person struct {
// name string //注意后面不能有逗号
age int
}
func main() {
//结构体初始化
p := person{
name: "taozs", //注意后面要加逗号
age: 18, //或者下面的}提到这儿来可以省略逗号
}
fmt.Println(p.name)
}
//初始化字段不一定要全部指定,比如下面也是可以的,name默认取string类型的零值,即空字符串
p = person{
age: 18,
}
2、根据已有类型,定义新类型
type
name
string
name
类型与string
拥有相同的特性,但两者是不同的类型
type name string
func main() {
var myName name = "robin"
l := []byte(myName) //与string类型一样可以转字节数组
fmt.Println(len(l)) //字节长度
}
还可以针对新类型定义方法。上面的name类型可以像下面这样定义方法:
type name string
func (n name) len() int {
return len(n)
}
func main() {
var myName name = "robin"
fmt.Println(myName.len()) //调用对象的方法
}
3、定义接口
type Phone interface {
call()
}
4、定义函数类型
type handle func(str string) //自定义一个函数func,别名叫做handle,传入一个string参数
网友评论