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路径:

VSCode 配置Go开发环境

  • Windows下要设置系统环境变量

Alt text

总结#

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]$ ls
go-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章/
作者
阿俊
发布于
2020-03-30
许可协议
CC BY-NC-SA 4.0

相关阅读