Go type 关键字的使用
· 阅读需 2 分钟
定义结构体(Struct)
使用场景:当你需要定义一个复合数据类型来组织和存储不同类型的数据时,结构体非常有用。它们通常用于模拟现实世界中的对象和实体
type Employee struct {
ID int
FirstName string
LastName string
Address string
}
定义接口(Interface)
使用场景:接口在为不同的类型提供统一的方法集合方面非常有用。它们广泛用于实现多态性和封装概念,使得你可以编写更灵活和可扩展的代码
type Reader interface {
Read(p []byte) (n int, err error)
}
定义类型别名(Type Alias)
使用场景:类型别名主要用于代码重构,特别是在将一个大型项目从一个 API 迁移到另一个兼容的 API 时,它可以确保向后兼容
type OldLogger = NewLogger
定义自定义类型(Custom Type)
使用场景:自定义类型适用于为特定的数据或概念创建专有的类型,这样可以使代码更加清晰易懂,并且利于类型安全
type UserID int
定义函数类型(Function Type)
使用场景:当你需要将函数作为参数传递给其他函数,或者需要从函数返回函数时,定义函数类型非常有用。这有助于创建高度模块化和可重用的代码库
type HandlerFunc func(w http.ResponseWriter, r *http.Request)