当前位置: 首页 > news >正文

golang中只用定义不用初始化的类型规律总结

在go语言的开发中,有很多的内置类型是我们只需要定义而不需要初始化的, 如上文中提到的bytes.Buffer, strings.Builder。 其实在go语言中官方给我们定义的很多的类型都只需要定义,不需要初始化。 

        他们都有2个共同的规律:

1. 类型定义里面的字段都是隐藏或者非导出

        即在你查看相关文档时他的类型定义里面一般都会有 // contains filtered or unexported fields  (包含隐藏或非导出字段), 他们一般都长这个样:

2. 一般都没有提供相关的NewXxx函数

如,这个strings包里面的这个Builder, 在官方文档里面 在type Builder里面就没有相关的New函数,

同时他的类型定义是长这样的

那么我们就可以放心的字节定义不用初始化就使用了。

其他常用的比如 sync同步包里面的定义,只有一个Cond类型使用需要初始化,其他类型是哟共都不选初始化,直接定义一个变量就可以使用, 如 var mu  sync.Mutex  //定义变量     mu.Lock() 直接使用

 

总结

   对应go官方定义的类型,只要是同时满足上面2个条件,那这个类型就可以不用初始化直接使用。

http://www.lryc.cn/news/367968.html

相关文章:

  • 数据库之PostgreSQL详解
  • 找出链表倒数第k个元素-链表题
  • ssm629基于SSM的二手交易平台设计与开发+jsp【已测试】
  • 【Unity】资源管理与热更 YooAsset+HybridCLR
  • PDF批量加水印 与 去除水印实践
  • 【MySQL】服务器配置和管理
  • 限流定义、算法、实施方案
  • [312. 戳气球] 动态规划寻找转移函数
  • 以操作系统和Java的视角看“中断“
  • 【运维】如何在Ubuntu 22上使用Python 3.8的虚拟环境
  • 门面模式Api网关(SpringCloudGateway)
  • 玩转Matlab-Simscape(初级)- 09 - 在Simulink中创建曲柄滑块机构的控制模型
  • 手撸一个java网关框架
  • 亮数据代理IP助力高效数据采集
  • VS2022,DLL1调用lib,lib调用DLL2
  • Unity Mirror VR联机开发 房间篇
  • 二叉树—leetcode
  • shell编程(二)——字符串与数组
  • 【数据结构】二叉树专题
  • 开源模型应用落地-LangChain高阶-LCEL-表达式语言(四)
  • Python第二语言(九、Python第一阶段实操)
  • Java异常机制
  • Aws EC2,kubeadm方式安装kubernetes(k8s)
  • python 比较 mysql 表结构差异
  • 【RAG入门教程01】Langchian框架 v0.2介绍
  • python 做成Excel并设置打印区域
  • SpringAI(二)
  • 小白都可以通过U盘重装系统,再也不用花50块钱去安装系统啦
  • android 双屏异显-学习笔记
  • Android Lottie 体积优化实践:从 6.4 MB 降到 530 KB