Golang学习笔记之包(package)

摘要:包是结构化代码的一种方式:每个程序都由包的概念组成,可以使用自身的包或者者从其它包中导入内容。一、工作空间编译?具对源码目录有严格要求,每个?作空间 (workspace) 必需由 bin、 pkg、 src 三个目录组成。二、包结构所有代码都必需组织在 package 中。? 包由同?目录下的多个源
包是结构化代码的一种方式:每个程序都由包的概念组成,可以使用自身的包或者者从其它包中导入内容。
一、工作空间

编译?具对源码目录有严格要求,每个?作空间 (workspace) 必需由 bin、 pkg、 src 三个目录组成。

二、包结构

所有代码都必需组织在 package 中。
? 包由同?目录下的多个源码?件组成。
? 包名相似 namespace,与包所在目录名、编译?件名?关。
? 目录名最好不? main、 all、 std 这三个保留名称。
? 可执??件必需包含 package main,??函数 main。
包公告 "package + 包名" ,必需在源文件中非注释的第一行指明这个文件属于哪个包。如:package main。package main表示一个可独立执行的程序,每个Go应用程序都包含一个名为 main 的包。
同一个包(package)下面,可以有非常多的不同文件,只需每个文件的头部都有相同name即可以,如 "package oldboy" 。文件夹名字可以和这个package名称不一致。

三、标准库

在Go的安装文件里包含了少量可以直接使用的包,即标准库。
Golang标准库文档

四、第三方库

通过"go get + 完整包名"保存下载第三方库。
在执行go get 命令之前,确保你的电脑配置了环境变量GOPATH,并且安装git。

五、导出包里面的数据

变量、函数、结构体、方法等,首字母大写,则可以被其余的包访问,假如首字母小写,则只能在本包中使用。

六、导入包

(1)导入标准库的系统包。
import "fmt"
(2)绝对路径导入包,导入 gopath/src/geometry/rectangle包中的内容。
"import "geometry/rectangle"
(3)相对路径导入包,导入同一目录下 rectangle 包中的内容。
import "./rectangle //仅对 go run main.go 有效"
(4)包重命名模式,导入包并启用别名。
import f "fmt //导入fmt,给他起别名f
(5)简便模式,这样即可以直接使用其内容,而不用再使用其"包名."的模式
import . "fmt" //例如fmt.Println可以直接写为Println
(6)?导?模式,仅让该包执?初始化函数
import _"./rectangle" //仅执行该包内的init函数
未使?的导?包,会被编译器视为错误 (不包括 "import _")。

七、初始化

? 每个源?件都可以定义?个或者多个初始化函数。
? 编译器不保证多个初始化函数执?次序
? 初始化函数在单?线程被调?,仅执??次。
? 初始化函数在包所有全局变量初始化后执?。
? 在所有初始化函数结束后才执? main.main。
? ?法调?初始化函数。
? 假如一个包导入了另一个包,被导入的包先初始化。
? 虽然一个包可能被包含屡次,但是它只被初始化一次。

函数形式如下:

func init() {    f.Println("init")}

不应该滥?初始化函数,仅适合完成当前?件中的相关环境设置。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】【Azure API Management】实目前API Management服务中使用MI(管理标识 Managed Identity)访问启用防火墙的Storage Account(2025-10-16 23:53)
【系统环境|】【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this opera...(2025-10-16 23:52)
【系统环境|】YouTube账号购买全攻略|点击查看原文购买|购买YouTube账号、油管号自动发货服务的优势与缺点 附:YouTube无法加载?可能是这个设置在作怪!(2025-10-16 23:52)
【系统环境|】【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)(2025-10-16 23:41)
【系统环境|】【Azure Redis 缓存】如何使得Azure Redis可以仅从内网访问? Config 及 Timeout参数配置(2025-10-16 23:40)
【系统环境|】近日,四川宜宾,某地下停车场内的监控拍到了一幕惊险的画面。危险!一汽车修理师傅正在修理一辆3吨重的悍马时,悍马车突然自己启动,眼看就要撞向前面的一辆灰色轿车了,一侧的修理师傅做出了一个令人始料不...(2025-10-16 23:38)
【系统环境|】iOS 能耗监控与电池优化实战:如何查看App耗电量、分析CPU、GPU内存使用、(uni-app iOS开发性能调试指南)(2025-10-16 23:37)
【系统环境|】《风流女管家》法国犯罪悬疑片--《风流女管家》法语高清全集免费在线无广告完整观看---《风流女管家》HD正版免费播放-手机电脑皆可看(2025-10-16 23:36)
【系统环境|】2025含金量排名前十计算机专业证书(2025-10-15 20:51)
【系统环境|】你有白帽众测 我有黑帽雇佣(2025-10-15 20:50)
手机二维码手机访问领取大礼包
返回顶部