在 go 中,不应在方法内创建新对象却不返回它,这会导致内存浪费和逻辑混乱;推荐使用独立的构造函数(如 newxxx)来初始化并返回结构体指针。
Go 语言强调清晰、高效与显式语义。你提供的代码中,CreateObject() 方法在接收者 *SelfInitialisator 的上下文中新建了一个 SelfInitialisator 实例,但既未返回该实例,也未将其赋值给任何外部变量——这意味着该对象在方法作用域结束时即被垃圾回收,完全无实际用途,属于典型的“创建即丢弃”反模式。
✅ 正确做法:使用命名构造函数(Factory Function),例如 NewSelfInitialisator():
func NewSelfInitialisator() *SelfInitialisator {
s := new(SelfInitialisator)
s.Fields1 = "Hello"
s.Fields2 = "Foo"
return s
}调用方式简洁明确:
s := NewSelfInitialisator() s.Method1() // 输出: Hello Foo
? 补充建议:
func NewSelfInitialisator(f1, f2 string) *SelfInitialisator {
return &SelfInitialisator{Fields1: f1, Fields2: f2}
}
——除非是内部缓存、日志临时对象等有明确生命周期管理的场景。总结:Go 不支持传统意义上的“构造方法”,而是通过普通函数实现对象创建。将初始化逻辑集中于 NewXXX 函数,既符合语言哲学,也提升代码可读性、可测试性与复用性。
# go
# 作用域
# 代码可读性
# 构造函数
# 结构体
# 指针
# function
# 对象
# 推荐使用
# 将其
# 自定义
# 不支持
# 可选
# 应在
# 这会
# 也未
# 结束时
# 或不
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
网络优化76771 】
【
技术知识130152 】
【
IDC云计算60162 】
【
营销推广131313 】
【
AI优化88182 】
【
百度推广37138 】
【
网站推荐60173 】
【
精选阅读31334 】
相关推荐:
Win11快速助手怎么用_Win11远程协助连接教程【工具】
php增删改查需要哪些扩展_开启mysqli或pdo扩展方法【说明】
Windows10如何更改开机密码_Win10登录选项更改密码教程
如何有效拦截拼接式恶意域名的垃圾信息
php8.4匿名类怎么用_php8.4匿名类创建与使用场景【介绍】
c++20的std::format怎么用 比printf更安全高效的格式化方法【详解】
XSLT怎么生成动态的HTML属性名和标签名
Python技术债务管理_长期维护解析【教程】
Win10系统更新错误0x80240034怎么办 Win10更新错误解决法【方法】
Win11怎么关闭小组件_Win11禁用任务栏天气与小组件方法【设置】
Windows系统时间服务错误_W32Time服务修复与同步教学
Python装饰器复用技巧_通用能力解析【教程】
Linux如何申请SSL免费证书_Linux下Certbot安装与Nginx自动续期【指南】
Windows蓝屏错误0x0000001E怎么修复_KMODEEXCEPTIONNOTHANDLED排查
Linux如何使用grep搜索文件内容_Linux下正则表达式匹配与查找技巧【指南】
c++中的std::conjunction和std::disjunction是什么_c++模板元编程逻辑运算【C++17】
Windows10如何更改系统字体大小_Win10辅助功能文本缩放设置
Windows10如何更改鼠标图标_Win10鼠标属性指针浏览
为什么本地php环境运行php脚本卡顿_php执行效率优化方法与设置【说明】
LINUX怎么进行文本内容搜索_Linux grep命令正则表达式用法大全【教程】
php转mp4怎么保留字幕_php处理带字幕视频转换说明【说明】
Windows10系统服务优化指南_Win10禁用不必要服务提升性能
Win11怎么设置麦克风权限_允许应用访问Win11麦克风【详解】
Win11声音忽大忽小怎么办 Win11音频增强功能关闭教程【修复】
Win11怎么关闭系统提示音_Windows11声音方案设为无声教程
如何使用Golang实现负载均衡_分发请求到多个服务节点
c++中如何使用虚函数实现多态_c++多态性实现原理
Mac怎么设置鼠标滚动速度_Mac鼠标设置详细参数
Windows10电脑怎么设置防火墙出站规则_Win10禁止程序联网教程
Win11如何关闭游戏模式 Win11禁用Xbox Game Bar录制【优化】
Win11怎么更改电脑名称_Windows 11修改计算机名操作指南【步骤】
php命令行怎么运行_通过CLI模式执行PHP脚本的步骤【说明】
Go 中 defer 语句在 goroutine 内部不返回时不会执行
Win11怎么关闭通知消息_屏蔽Windows 11右下角弹窗通知设置【详解】
Mac的Time Machine怎么用_Mac系统备份与数据恢复【完整指南】
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Mac如何彻底清理浏览器缓存?(Safari与Chrome)
Python网络超时处理_健壮性设计说明【指导】
Windows10如何更改鼠标灵敏度_Win10鼠标属性指针选项调节
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
Python对象比较与排序_集合使用说明【指导】
Win11如何连接Xbox手柄 Win11蓝牙连接游戏手柄教程【步骤】
Win11如何设置系统声音_Win11系统声音调整教程【攻略】
如何在JavaScript中动态拼接PHP的base_url与JS变量
Python函数接口稳定性_版本演进解析【指导】
PythonWeb前后端整合项目教程_FastAPIReact完整实例
Win11怎么设置任务栏对齐方式_Windows11个性化任务栏行为
Mac如何查看电池健康百分比_Mac系统信息电源检测
如何使用Golang反射将map转换为struct_Golang reflect类型映射技巧
php怎么捕获异常_trycatch结构处理运行时错误的技巧【方法】
2026-01-05
致胜网络推广营销网专注海外推广十年,是谷歌推广.Facebook广告全球合作伙伴,我们精英化的技术团队为企业提供谷歌海外推广+外贸网站建设+网站维护运营+Google SEO优化+社交营销为您提供一站式海外营销服务。