- Go语言从入门到精通
- 谢琼编著
- 699字
- 2025-04-02 16:12:15
3.2.2 非执行包与包的引用
对应于可执行包,还有一种包叫作非执行包,也就是包名不是main的包。这种包不能被编译成可执行文件,它存在的目的主要是将一些有用的功能函数集中在一起供其他包调用。一般会将同为某一目的开发的多个函数或者同属某个功能分类的函数合起来做成一个包。例如,我们在Hello world!程序中调用的fmt就是Go语言标准库中提供的一个包,其中包括了多个用于输入或输出信息的函数,在Go语言开发中非常有用。
在用Go语言编写的某个包的代码中,如果要调用其他包中的函数,需要“引用”(也可以称作“导入”“声明”)这个包。例如,在Hello world!程序中,用下述几行代码对fmt包进行了引用。
import ( "fmt" )
以import开始,包含在一对圆括号中,以双引号括起来的一行就是在程序中需要引用的包。本例中仅导入了fmt一个包,如果要调用fmt中的函数,需要用“包名+.+函数名”的方式调用,例如,
fmt.Println("Hello world!")
这条语句就调用了fmt包中的Println函数,函数后面的圆括号中是传递给该函数的参数。Println函数的作用是将传递给它的参数输出到命令行界面上,并且后面再输出一个换行符(也就是输出一行文字后再多一个换行)。
如果程序中需要引用多个包,每一个包在import语句的圆括号中增加一行即可,例如代码3-2中引用了fmt和os两个包。
import ( "fmt" "os" )
因此fmt和os在import语句中各占了一行,注意引用的包名都需要放在一对双引号中。
注意
本书中如无特殊说明,使用的符号应该都是半角的英文符号。
另外,Go语言中严格规定不允许引用未在代码中使用的包。也就是说,如果在没有使用包中任何函数或其他内容的情况下引用了某包,编译的时候将会报错并无法编译通过。这是Go语言与大多数开发语言不同的地方,在其他主流语言中,这种情况一般只会有一个提示告警,而不会导致编译或执行失败。