mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 00:43:26 +08:00
+ 添加ch10.2
This commit is contained in:
33
eBook/10.2.md
Normal file
33
eBook/10.2.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 10.2 使用工厂方法创建结构体实例
|
||||
|
||||
## 10.2.1 结构体工厂
|
||||
|
||||
Go语言不支持像面向对象编程语言中那样的构造子,但是可以很容易的使用Go实现“类构造子工厂“函数。为了方便常常会为一个类型定义一个工厂,按照约定工厂的名字以new或New开头。假设定义了如下的File结构体类型:
|
||||
|
||||
```go
|
||||
type File struct {
|
||||
fd int // 文件描述符
|
||||
name string // 文件名
|
||||
}
|
||||
```
|
||||
|
||||
下面是这个结构体类型对应的工厂函数,它返回一个指向结构体实例的指针:
|
||||
|
||||
```go
|
||||
func NewFile(fd int, name string) *File {
|
||||
if fd < 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return &File(id, name)
|
||||
}
|
||||
```
|
||||
|
||||
**练习**
|
||||
|
||||
*练习 10.1*
|
||||
|
||||
## 链接
|
||||
- [目录](directory.md)
|
||||
- 上一节:[10 结构(struct)与方法(method)](10.0.md)
|
||||
- 下一节:[10.2 使用工厂方法创建结构体实例](10.2.md)
|
Reference in New Issue
Block a user