go语言中包导入的一些问题_后端开发

go语言中包导入的一些问题_后端开发

后端开发2019-12-15 2:52140ki4网

import

Go 运用包(package)作为基础单位来构造源代码,一切语法可见性均定义在 package 这个级别。统一 package 下面,能够有异常多的差别文件,只需每一个文件属于雷同的 package name。

每一个源码文件的第一行必定要经由过程以下语法定义属于哪一个 package,

package xxx

然后就是导入本源码文件所运用的规范包或第三方包,即

import (
    "a/b/c"
    "fmt"
)

规范库会从 GO 的装置目次下查找,第三方库会从开发者定义的 $GOPATH 下查找。当都找不到时,编译器就会报错。在运用第三方包的时刻,当源码和 .a 均已装置的情况下,编译器链接的是源码。

注重: 上面语句中 a/b/c 末了的 c 为目次名,不是 package name。

在对文件中的要领举行挪用时,运用以下花样:

package.Methodxxx()

统一文件夹下的多个文件的 package 平常定义为该文件夹的名字,然则也有破例,比方上面的栗子中,c 文件下的一切文件的 package 定义为 fux,那末在挪用这个文件夹下文件的要领时,只能运用 fux.Methodxxx(),而不是 c..Methodxxx()

一个非main包在编译后会生成一个.a文件(在暂时目次下生成,除非运用go install装置到 $GOROOT$GOPATH下,不然你看不到 .a),用于后续可执行顺序链接运用。

vendor

Go 在 1.5 的版本到场的 vendor 的支撑来做包治理。1.5 版本要设置 GO15VENDOREXPERIMENT="1" 来支撑这个特征,1.6版本将其作为默许参数设置。下面关于包括 vendor 目次的包导入途径划定规矩大抵以下。

├── d
    ├── mypkg
    |     └── main.go
    └── vendor
          └── q
              ├── q.go

当上述目次构造,在 main.go 中 import q时,后首先从 vendor 目次下查找,若找不到,会从 $GOPATH 目次下查找,再找不到的话,编译器就报错了。

更多go言语学问请关注go言语教程栏目。

以上就是go言语中包导入的一些问题的细致内容,更多请关注ki4网别的相干文章!

炫龙网络 Copyright ©  本站由阿里云强力驱动
go语言中包导入的一些问题_后端开发