在 Golang 中的一个 包 中如果定义了 函数,该函数的首字母如果小写,那么在其他包中将无法使用该函数。如果定义的函数首字母大写,那么可以在另一个包中访问。
package package1
func func1(){
}
我们在包 package1
中定义了一个函数 func1
,因为其首字母是小写的,因此,该函数只能在包 package1
中使用,在其他包不能访问。
package package1
func Func1(){
}
我们在包 package1
中定义了一个函数 Func1
,因为其首字母是大写的,因此,该函数可以在其他包中使用。
首先,我们在设置的 GOPATH 环境变量对应的路径下的 src 目录下新建一个 haicoder
文件夹,并在 haicoder
文件夹新建一个 info.go
文件,如下图所示:
我们在 info.go
文件里面输入如下内容:
package haicoder
import "fmt"
func info(){
fmt.Println("HaiCoder info")
}
首先,我们使用 package
关键字定义了该文件所在的包的名字为 haicoder
,接着,在该包里面,定义了一个首字母小写的函数 info
。函数 info
直接使用 print 输出一句话。
接着,我们在 GOPATH
路径下新建一个 haicoder.go
文件,在文件中,输入以下内容:
package main
//函数可访问性
import (
"fmt"
"haicoder"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
haicoder.info()
}
即,我们定义了该包的包名为 main 包,同时,我们在 main 包里面同时引入了 fmt 包和 haicoder 包,最后,我们在 main 函数里面,使用 haicoder 包里面的 info 函数。程序运行后,控制台输出如下:
我们看到,程序运行报错,因为,我们在 haicoder
包定义的函数名首字母是小写的,而首字母小写的函数只能在本包使用。所以,在 main
包不能使用 package1
包里面的函数 info
。接着,我们修改 info.go
文件,如下:
package haicoder
import "fmt"
func Info(){
fmt.Println("HaiCoder info")
}
即,将首字母小写的函数 info
修改为了首字母大写的 Info
,同时,修改 haicoder.go
文件如下:
package main
//函数可访问性
import (
"fmt"
"haicoder"
)
func main() {
fmt.Println("嗨客网(www.haicoder.net)")
haicoder.Info()
}
此时,再次运行程序,输出如下:
我们看到,这次程序没有报错,即我们在 main
包里面成功调用了 haicoder
包里面的首字母大写的函数。
在 Golang 中的一个包中如果定义了函数,该函数的首字母如果小写,那么在其他包中将无法使用该函数。如果定义的函数首字母大写,那么可以在另一个包中访问。