Go语言导出包标志符

Go语言导出包标志符教程

Golang 中一个 想要引用另一个包的标志符,比如:变量结构体常量函数 等,那么这些标志符必须在本包里面是导出的。

Go 语言中,标志符的导出,只需要将其首字母大写即可,所有首字母大小的标志符都是导出的标志符,都可以在另一个包中引用。

在包中,未导出的标志符,首字母都是小写的,这些标志符在本包可以自由的使用,在其他包不可以使用。

案例

导出包变量

首先,我们在设置的 GOPATH 环境变量对应的路径下的 src 目录下新建一个 haicoder 文件夹,并在 haicoder 文件夹新建一个 info.go 文件,如下图所示:

12_golang包导出标志符.png

我们在 info.go 文件里面输入如下内容:

package haicoder const Version = "1.0" const releaseVersion = "0.9"

首先,我们使用 package 关键字定义了该文件所在的包的名字为 haicoder,接着,在该包里面,定义了两个 string 类型的 变量 一个是首字母大写的 “Version”,一个是首字母小写的 “releaseVersion”。

接着,我们在 GOPATH 路径下新建一个 haicoder.go 文件,在文件中,输入以下内容:

package main //导出包变量 import ( "fmt" "haicoder" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") version := haicoder.Version fmt.Println("Version =", version) }

即,我们定义了该包的包名为 main 包,同时,我们在 main 包里面同时引入了 fmt 包和 haicoder 包,最后,我们在 main 函数里面,使用 haicoder 包里面的 Version 变量。程序运行后,控制台输出如下:

13_golang包导出标志符.png

我们看到,程序运行之后,输出了我们在 haicoder 包里面的 Version 变量。即,我们在 main 包里面成功调用了 haicoder 包里面的变量。接着,我们修改程序源码如下:

package main //导出包变量 import ( "fmt" "haicoder" ) func main() { fmt.Println("嗨客网(www.haicoder.net)") version := haicoder.releaseVersion fmt.Println("Version =", version) }

我们调用了 haicoder 包里面的 releaseVersion 变量,程序运行后,控制台输出如下:

14_golang包导出标志符.png

我们看到,程序报错,因为,首字母小写的变量不是包导出变量,只能在本包使用,在别的包不可以使用。

Go语言导出包标志符教程总结

Golang 中的 包 的引用有四种引用格式,分别为:使用标准引用方式引入、使用别名引用方式引入、使用省略方式引入和仅执行包 init 函数方式引入。