Go type知识点解析


写在前面

本文主要讲一下type的两种用法

定义新类型

type可以定义新类型,包括结构体、接口、函数、通道等

type Person struct {
    Name string
    Age int
}

type Reader interface{
    Read() ([]byte, error)
}

type MiddlewareFunc func(ctx context.Context, next Handler) error

type IntChan chan int

定义别名

type还可以定义别名

type PersonType = Person

注意

type PersonType = Person这种方式定义的别名跟原类型是一模一样的,是同一个类型,没有任何区别

type PersonType Person这种方式是将Person类型重新定义了一个新类型PersonType,这2个类型没有任何相关性,是两个不同的类型。这2个类型的变量不能直接赋值,但是可以通过类型转换赋值。并且PersonType只有Person的属性,没有方法

别名的作用

  1. 提高代码可读性:通过定义类型别名,可以让代码的意图更加明确和易于理解。例如,使用type IntList []int可以清晰地表明IntList是一个int类型的切片,而不是一个普通的int类型变量。
  2. 简化代码:类型别名可以让代码更加简洁明了,避免了重复定义一些类型的繁琐过程。例如,使用type MyFunc func(int) bool可以简化一些函数的定义,使得代码更加紧凑。
  3. 保持兼容性:使用类型别名可以让代码更加灵活,方便后续对类型的修改和调整。例如,在一个项目中,如果需要将某个类型更换为另一个类型,可以通过修改类型别名的定义,而不必对项目中的所有代码都进行修改,从而提高了代码的可维护性和兼容性。

总之,类型别名是一种非常有用的语言特性,可以使得代码更加清晰、简洁、易于维护和兼容。


文章作者: Alex
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Alex !
  目录