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