众所周知,c/c++通过#include头文件的方式引用其他文件,实现调用其他文件的方法和变量
go是通过import来实现,我们熟知的fmt就可以通过import "fmt"进行引用,这是引用的系统库,我们自定义的go文件也是通过import 来引用,只不过需要按照一定的规范才能够引用
下面我们来看看go是如何引用自定义的包的
创建首先,我们自定义自己的包,名为pac.go,在工程目录下创建pac的文件夹,把pac.go放到pac文件夹中
编辑pac.go,首行package pac定义包名,如“fmt”,“main”,包名要和文件夹名字一样,需要外部调用的函数及变量等首字母需要大写,否则外部无法调用
package pac
import "fmt"
func Printstr(x string) {
fmt.Println(x + " is pac")
}
引用
package main
import "package-test/pac"
func main() {
pac.Printstr("this")
}
通过import进行引用,我们go的工程一般都是放在$GOPATH/src,import引用的路径为$GOPATH/src的相对路径
使用方式为包名.xxx,如pac.Printstr("this")
如果使用vs code,直接调用进行保存会自定添加满足的包,但是如果手动import包,但没有调用该包的内容,保存后会自动去掉该引用,有时候会误导人以为引用的路径不对导致的
包含多个文件一个包内可以包含多个文件,即文件夹内可以有多个文件,每个文件的包名必须都一样,每个文件可直接互相引用
pac.go
package pac
import "fmt"
func Printstr(x string) {
fmt.Println(x + " is pac")
}
var test string
pac2.go
package pac
import "fmt"
func Printstr2(x string) {
test = "2222"
fmt.Println(test)
}
pac2可直接使用test,我们可以理解为同个包下内容是相通的,只是被拆分为不同的文件
如果要引用其他包,必须使用import
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)