mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:11:36 +08:00
902 B
902 B
10.2 使用工厂方法创建结构体实例
10.2.1 结构体工厂
Go语言不支持像面向对象编程语言中那样的构造子,但是可以很容易的使用Go实现“类构造子工厂“函数。为了方便常常会为一个类型定义一个工厂,按照约定工厂的名字以new或New开头。假设定义了如下的File结构体类型:
type File struct {
fd int // 文件描述符
name string // 文件名
}
下面是这个结构体类型对应的工厂函数,它返回一个指向结构体实例的指针:
func NewFile(fd int, name string) *File {
if fd < 0 {
return nil
}
return &File(id, name)
}
练习
练习 10.1