go中的包
golang中,除了项目的主目录和vendor
目录之外,每个文件夹都可以是一个包。一般文件夹名即包名(确保文件夹中的package写的于文件夹名称一致,因为引入的时候是可以起别名的)。要使用包中的变量或方法使用:包名.{方法|变量}
项目文件中,引入自定义包文件时,路径必须要从项目名开始。
例子:
比如说我的项目叫demo
。
我在项目中新建一个包demo\comm
,包里有个文件tool.go
,文件中有个Hello
方法,
这样引用:
import "demo/comm"
这样使用:
comm.Hello()
import
在项目中使用import引入包时,根据包地址。先从./vendor
下查找,找不到在向GOROOT
或者GOPATH
下查找
go get
如何下载github上的包?
下载github的包,假如包地址为: https://gitgub{包地址}
下载命令为: go get gitgub{包地址}
goget中设置代理
go env -w {参数}={参数值}
查看golang环境变量
go env
在任意目录下建立go项目
golang自定义了一套规范,在go1.13
之前我们的所有项目都需要在go的安装目录下的src文件夹当中,这样才能引入到go的包和库
。go1.13
之后,我不在goroot
目录下开发,如何引入GOROOT下src的包,同时不想重新下载呢?
在要引入的包的目录下执行 go mod init {包文件名}
。
会初始化一个项目,然后就可以在这个目录下引入golang的包
,开始快乐的开发了
依赖引入
注:go mod init {包名}只是初始化
,当有新的依赖需要加在时,可以使用go mod tidy
来载入依赖
同时,这些载入的依赖不是重新下载的,而是引用了goroot下src
目录下的依赖
自定义包的引入,案例
假定我们在demo1
文件夹下新建了个项目。
在demo1/comm/tool.go
编写如下一个方法
package comm// package名称只需要写当前文件夹名称即可
import "fmt"
func Hello(){
fmt.Println("hello world!")
}
然后再demo1/main.go
使用。
pakage main //package在项目根目录使用main
import "demo1/comm"
func main(){
tool.Hello()
}
// 打印: hello world!
![]() | ![]() |