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

go语言学习之包

概念:

        在Go 语言中,包由一个或多个保存在同一目录的源码文件组成,包名宇目录名无关,但是通常大家习惯包名和目录名保持一致,同一目录的源码文件必须使用相同的包名。

        包的用途类似于其他语言的命名空间,可以限制成员的作用域和访问权限,无论是否在同一源码文件的成员,只要在同一个包内,成员均可被访问,但是只有首字母大写的成员为导出成员,可以在包外访问。

        除了基于首字母大小写控制访问权限,在 Go 语言中,还可以使用内部包机制来控制访问权限,内部包源码文件存放于包目录的子目录,内部包源码文件的导出成员仅能被其父目录下的包访问。

包声明:

        在 Go 语言中,每一个源码文件开头都必须使用关键字 package 进行包声明(定义包名)。主要目的是限制包内成员的作用域和访问权限,也是当前包被其他包导入时的标识符。包名是导入路径的最后一段,所以不同导入路径的包名可以相同。

包导入:

        导入路径:Go 语言中的每一个包都是通过唯一的字符串进行标识,称为导入路径。
导入声明:在 Go 源码文件中,可以在 package 包声明后面导入一个或多个包,每一个导入的包可以单独使用关键字 import 指定一个导入路径,也可以使用圆括号括起来一组导入路径,使用关键字 import 一次导入多个包,通常大家更喜欢使用第二种方式。如果在同一个包中导入两个相同包名的包,需要至少为其中一个包起别名来避免冲突,别名仅对当前源码文件有效。有时别名也不止用于避免包名冲突,对于一些较长的包名,为了方便使用,通常也会定义一个短别名。
空白导入:如果导入的包,在源码中没有使用该包名,编译时就会产生错误。但在实际项目开发中,有时我们仅需要使用一个包中的变量和执行它的 init 函数,为了避免此类情况导致的编译错误,我们可以在导入路径前面使用空白标识符 “_” 。

包创建:

        在创建一个包时,尽量使用简短的包名,但是要尽可能保持包名的可读性和无歧义,如果需要用到与 go 关键字同名的包名,一般采用其复数形式。

http://www.dtcms.com/a/286727.html

相关文章:

  • 新书推介 | 吉林大学出版教材《汽车智能辅助驾驶系统技术》,国产仿真工具链GCKontrol-GCAir教学应用
  • Python_2
  • math.h函数
  • 弱网测试
  • 跨域问题及解决方案
  • ChatGPT Agent:统一端到端Agentic模型的技术革新与行业影响
  • React + Mermaid 图表渲染消失问题剖析及 4 种代码级修复方案
  • 前端-CSS盒模型、浮动、定位、布局
  • 前端迟迟收不到响应,登录拦截器踩坑!
  • 比较含距离和顺序的结构相似性
  • 【EPLAN 2.9】许可证xx成功却显示红色叉,无法启动
  • 人工智能时代对高精尖人才的需求分析
  • 嵌入式数据结构之顺序表总结
  • openpyxl 流式读取xlsx文件(read_only=true)读不到sheet页中所有行
  • 配置本地git到gitlab并推送
  • 【机器学习】AdamW可调参数介绍及使用说明
  • 【LINUX操作系统】ssh远程连接---客户端Windows连接服务端虚拟机
  • 应用集成体系深度解析:从数据互通到流程协同
  • 你需要了解的 AI 智能体设计模式
  • compose multiplatform 常用库
  • Python FastMCP:让你的AI工具链飞起来
  • 深入解析操作系统中的文件控制块(FCB):从原理到现代实现演进
  • 利用动画实现热点图转圈循环放大效果
  • 深入理解 slab cache 内存分配全链路实现
  • 445、两数相加 II
  • 数字人直播:开启直播行业新纪元​
  • 基于LiteNetLib的Server/Client Demo
  • Android各版本适配方案总结归纳
  • 企业网站建设全攻略
  • Linux系统之:进程概念