1. main包

package main

import (
"day01/utils"
"fmt"
) //type File struct {
// fd int
// name string
//}
//func NewFile(fd int, name string) *File {
// // 定义一个File类型的工厂方法
// return &File{fd: fd, name: name}
//} func main() {
// 结构体工厂,
// go语言不支持面向对象编程语言的构造方法,为了方便通常会为类型定义一个工厂
// 按惯例,工厂的名字以new或New开头,假设定义如下的file结构体类型
//file := NewFile(10, "./test.txt")
//fmt.Println(file.fd, file.name)
// go语言里通常向上面这样在工厂方法里使用初始化来简便的实现构造函数 // 强制使用工厂方法,让结构体变为私有,工厂方法变为公有,这样强制所有代码在实例化结构体时都使用工厂方法 file := utils.NewFile(10, "./test.txt")
fmt.Println(file.Fd, file.Name) }

  

2. utils包

package utils

// 私有
type file struct {
Fd int
Name string
}
// 公有
func NewFile(fd int, name string) *file {
return &file{Fd: fd, Name: name}
}

  

最新文章

  1. java web项目获取各种路径
  2. JDE客户端get时报错“ERROR:fetch from table F0101 failed”
  3. 双系统下恢复Ubuntu引导菜单
  4. You have new mail in /var/spool/mail/root 烦不烦你?
  5. 雕爷:我眼中的O2O成长路径
  6. 查看Android下生成的.db数据库
  7. [高并发]抢红包设计(使用redis)
  8. html5shiv.js和respond.min.js的作用
  9. LeetCode编程训练 - 折半查找(Binary Search)
  10. 关于linux系统CPU篇--->平均负载
  11. 一键开启MacOS HiDPI
  12. 有一个字典对象,d = {'a':1,'b':2},请用尽量简洁的代码将d转换成{1: 'a', 2: 'b'}
  13. php 实现简拼
  14. 仿造mongodb的存储方式存一些假数据
  15. go语言sync包的学习(Mutex、WaitGroup、Cond)
  16. 【API】文件操作编程基础-CreateFile、WriteFile、SetFilePointer
  17. URAL 1513 Lemon Tale
  18. Java实现浏览器端大文件分片上传
  19. Registry私有仓库搭建及认证
  20. asp.net,C#操作数据库DataTable关于空null的判断

热门文章

  1. JAVA获取请求链接中所有参数(GET请求)
  2. 微信支付——沙箱调试环境getsignkey方法秘钥获取及常见问题说明
  3. 7、滑动窗口套路算法框架——Go语言版
  4. 【LeetCode】Integer to English Words 解题报告
  5. Redis 实现了自己的 VM
  6. 第二十一个知识点:CRT算法如何提高RSA的性能?
  7. Windows下安装配置MySQL
  8. JavaScript交互式网页设计 • 【第1章 JavaScript 基本语法】
  9. 使用 windows bat 脚本命令 一键启动MySQL服务
  10. Java高效开发-fiddler抓包工具