10.2 使用工厂方法创建结构体实例

Kesa...小于 1 分钟

10.2 使用工厂方法创建结构体实例

10.2.1 结构体工厂

工厂函数名一般以New/new开头。

假设定义File:

type File struct {
    fd int 		// 文件描述符
    name string // 文件名 
}

工厂函数:

func NewFile(fd int, name string) *File {
    if fd < 0 {
        return nil
    }
    
    return &File{fd, name}
}
f := NewFile(10, "text.txt")

new(File)&File{}是等价的

强制使用

将结构体变为私有的,此时用户只能通过工厂函数来创建结构体变量

上次编辑于:
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.2