网络人

GO语言学习笔记8:程序的包管理与理解

Kwok: 2020-10-03 13:10:48 点击:13 评论: 0

每个 Go 程序都是由包构成的。程序从 main 包开始运行。也就是说main为程序的入口。按照约定,包名与导入路径的最后一个元素一致。例如,"math/rand 语句开始。

程序需要引用包来实现其包的功能,在GO语言中,未使用的包要清理或者忽略掉,否则编译不会通过。

import "fmt" //引入1个包

//引入1个或者多个包
import (
	"fmt"
	_ "math" //前面加了下线包表示这个包将忽略掉
)

引入包的路径是从项目环境变量的src目录开始的(不包括src),通常情况下包与目录和文件的名字一致:

    电脑的工作区
	|
	+--- bin目录 // go install 安装目录。
	|	  |
	| 	  +--- 我的项目名
	|
	|
	+--- pkg目录 //go build ⽣成静态库 (.a) 存放目录。
	| 	  |
	|	  +--- darwin_amd64
	| 			|
	| 			+--- 我的库.a
	| 					|
	| 					+--- 我的库
	|						 |
	|						 +--- 库项目.a
	|
	+--- src目录 // 项目源码目录。引包就从下面开始
		  |
		  +--- 我的项目目录
		  | 	 |
		  | 	 +--- main.go
		  |
		  |
		  +--- 我的库目录 
		  	|
			+--- 我的库.go
			|
			+--- 公共库目录
			|
			+--- 公共库文件.g

可以在GOPATH环境变量中添加多个工作空间,但不能和GOROOT相同。通常go get使用第一个工作空间保存下载的第三方库

编码:源码⽂件必须是 UTF-8 格式,否则会导致编译器出错。
结束:单行语句 “;” 结束,换行语句“;”省略。
注释:⽀持 “//”、 “/**/” 两种注释⽅式,不能嵌套。
命名:采⽤ 驼峰命令(camelCasing) ⻛格,不建议使⽤下划线。

引包可以使用别名,很多时候我们引用的包名字很长,或者记不住包的名字,我们可以给包取个自定义的名字方便我们调用:

import(
	io "fmt"
)
io.Println("hello world") //别名可以直接用,在包重名时很有用

或者这样操作:

import (
	. "fmt"  //但是为了别人好看,一般还是不用这种
)
func main(){
	Println("hello")
}

很多人说GO语言是面向github编程,因为可以直接引用github上的包,

import "github.com/xxxx/xxx"

go build 命令会使用 GOPATH的设置,在磁盘上搜索这个包。事实上,这个导入路径代表一个URL,指向 GitHub上的代码库。如果路径包含 URL,可以使用 Go 工具链从DVCS 获取包,并把包的源代码保存在 GOPATH指向的路径里与 URL 匹配的目录里。这个获取过程使用 go get 命令完成。 go get 将获取任意指定的 URL 的包,或者一个已经导入的包所依赖的其他包。由于 go get的这种递归特性,这个命令会扫描某个包的源码树,获取能找到的所有依赖包。

本文地址:http://m.neter8.com/go/77.html
标签:GO项目

本站推荐阅读

热门点击文章