Go从入门到精通——非执行包与包的引用
非执行包与包的引用
对应于可执行包,还有一种包叫作非执行包,也就是包名不是 main 的包。这种包不能被编译成可执行文件,它存在的目的主要是将一些有用的功能函数集中在一起供其他包调用。一般会将同为某一目的开发的多个函数或同属某个功能分类的函数合起来做一个包。
例如,我们在 Hello world 程序中调用 fmt 就是 Go 语言标准库中提供的一个包,其中包括了多个用于输入或输出信息的函数,在 Go 语言开发中非常有用。
在用 Go 语言编写的某个包的代码中,如果要调用其他包中的函数,需要"引用"(也可以称作 "导入","声明")这个包。例如,在 Hello world 程序中,用下述几行代码对 fmt 包进行了引用。
import ( "fmt" )
以 import 开始,包含在一对圆括号中,以双引号括起来的一行就是在程序中需要引用的包。本例中仅导入了 fmt 一个包,如果要调用 fmt 的函数,需要用 "包名+.+函数名" 的方式调用,例如:
fmt.Println("Hello world!")
这条语句就调用了 fmt 包中的 Println 函数,函数后面的圆括号中是传递给该函数的参数。Println 函数的作用是将传递给它的参数输出到命令行界面上,并且后面再输出一个换行符(也就是输出一行文字后再多一个换行)。
如果程序中需要应用多个包,每一个包在 import 语句的圆括号中增加一行即可:
import( "fmt" "os" )
因此 fmt 和 os 在 import 语句中各占了一行,注意引用的包名都需要放在一对双引号中。
另外,Go 语言中严格规定不允许引用未在代码中使用的包。也就是说,如果在没有使用包中任何函数或其他内容的情况下引用了某包,编译的时候将会报错并无法编译通过。这是 Go 语言与大多数开发语言不同的地方,在其他非主流语言中,这种情况一般只会有一个提示告警,而不会导致编译执行失败。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具