864 字
4 分钟
Go 语言学习笔记 -第10章
Go 语言学习笔记 -第10章
包和go工具
包的本质
包的本质实际上是创建不同的文件夹,来存放程序文件
go 的每个文件都是属于一个包的,也就是go是以包的形式来管理文件和目录结构的
包的作用
1、区分相同名字的函数、变量标识符等
2、当程序文件很多时,可以很好的管理项目
3、控制函数、变量等访问范围,即作用域
包的说明
- 打包:
package util- 引入包:
import "包的路径"在import 包时,路径从$GOPATH的src开始,不用带src, 编译器会自动从src下面引入
执行 “go env”可以查看GOPATH路径
也可以在vscode里面配置GOPATH路径:
- Windows下要设置系统环境变量

总结
import "fmt" or import( "fmt" )
两种写法
1. 相对路径 import "./models" //当前同一个文件目录下的model. 不建议使用
2. 绝对路径 import "shorturl/model" // gopath/src/shorturl/mdoel
点操作 import( . "fmt" )
类似python from fmt import *
别名操作 import( f "fmt" )
类似python的 import fmt as f
_操作 import ( _ "github.com/ziutek/mymysql/godrv" ) 不直接使用包里的函数, 只调用该包的init包安装
[jian@laptop github.com]$ pwd/home/jian/go/src/github.com[jian@laptop github.com]$ lsgo-delve gomodule mdempsky newhook ramya-rao-a rogpeppe sqs tpng[jian@laptop github.com]$
到这个目录,然后git clone相应的包
git clone https://github.com/gomodule/redigo.git
然后到src目录进行执行:
go get github.com/gomodule/redigo/redis包注意事项
1.每个包就是一个文件夹
2.包名称就是文件夹名称
3.包路径就是文件夹路径
4.同一个文件夹存在不同包 就会编译出错
5.文件名和包名不一样 也会编译出错
go工具
mac
brew install go or下载pkg包
安装后
export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin
验证是否已安装
go
GOPATH
允许有多个目录, export GOPATH=/Users/ken/goworkspace/libs:/Users/ken/goworkspace/Counter
默认将go get内容放在第一个目录下
libs 放置公有包 |- src |- pkg |- bin
Counter 具体项目 |- src 存放源码 |- pkg 编译后生成的文件 |- bin 编译后生成的可执行文件
获取远程包
go get github.com/astaxie/beedb
命令go get从互联网上下载或更新指定的代码包及其依赖包,并对它们进行编译和安装。并安装到了环境变量GOPATH中包含的第一个工作区中
本质上 : clone到src -> go install
然后在其他项目里可以 import "github.com/astaxie/beedb"
程序结构
1.通过 package组织 2.只有package名称为main的包可以包含main函数 3.一个程序有且仅有一个main包 4.通过import关键字导入其他非main包
go命令工具
go build 测试编译, 有一些规则
go build hello.go ./hello
go clean 移除当前源码包里编译生成的文件
go fmt格式化写好的代码
go fmt xx.go
go get 动态获取远程包
go install 生成结果文件(可执行文件或者.a包) -> 把编译好的结果移到$GOPATH/pkg或者$GOPATH/bin中
go test 运行测试用的可执行文件 *_test.go
go version 查看版本 go env 查看当前go环境变量 go list 列出当前安装的所有package
go run 编译并运行go语言程序 Go 语言学习笔记 -第10章
https://blog.zhequtao.com/posts/golang/go-learning/学习笔记-go/第10章/