leisore 10 lat temu
rodzic
commit
4595a991b2
1 zmienionych plików z 33 dodań i 0 usunięć
  1. 33 0
      eBook/10.2.md

+ 33 - 0
eBook/10.2.md

@@ -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)