go

go语言中type的几种使用方式

2019-01-22  本文已影响395人  __robin

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参数
上一篇下一篇

猜你喜欢

热点阅读