Golang(一)
一、Go安装
二、Go入门
1. Go程序
package main //声明程序为main包,表明这是一个可执行文件
import "fmt" //导入内置fmt包
func main() { //main()函数,程序的入口
fmt.Println("hello,go") //终端输出hello,go
}
2.Go编译
go build //编译生成hello.exe的可执行程序
go build hello //编译生成hello.exe的可执行文件
go build -o haha.exe //指定生成的haha.exe文件名的可执行文件
3. 执行结果
#hello.exe
hello,go
4.交叉编译
1.window下编译Linux和Mac
SET CGO_ENABLED=0 # 禁用CGO
SET GOOS=linux # 目标平台是linux
SET GOARCH=amd64 # 目标处理器架构是amd64
SET CGO_ENABLED=0 # 禁用CGO
SET GOOS=darwin # 目标平台是linux
SET GOARCH=amd64 # 目标处理器架构是amd64
go build
2.Linux
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build #目标平台Mac
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build #目标平台Linux
3.Mac
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build #目标平台Linux
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build #目标平台window
三、go moduel
go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,
go module
将是Go语言默认的依赖管理工具。使用 go module 管理依赖后会在项目根目录下生成两个文件
go.mod
和
go.sum
1.模式设置
-
GO111MODULE=off
禁用模块支持,编译时会从
GOPATH
和
vendor
文件夹中查找包。 -
GO111MODULE=on
启用模块支持,编译时会忽略
GOPATH
和
vendor
文件夹,只根据
go.mod
下载依赖。 -
GO111MODULE=auto
,当项目在
$GOPATH/src
外且项目根目录有
go.mod
文件时,开启模块支持。
2.GOPROXY
Go1.13之后
GOPROXY
默认值为
https://proxy.golang.org
,国内推荐使用
goproxy.cn
go env -w GOPROXY=https://goproxy.cn,direct
3.go mod命令
go mod download #下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
go mod edit #编辑go.mod文件
go mod graph #打印模块依赖图
go mod init #初始化当前文件夹, 创建go.mod文件
go mod tidy #增加缺少的module,删除无用的module
go mod vendor #将依赖复制到vendor下
go mod verify #校验依赖
go mod why #解释为什么需要依赖
4.go.mod
module github.com/study-go #模块名
go 1.23 #模块的Go版本
require ( #模块依赖和版本
github.com/DeanThompson/ginpprof v0.0.0-20190408063150-3be636683586
github.com/gin-gonic/gin v1.4.0
github.com/go-sql-driver/mysql v1.4.1
github.com/jmoiron/sqlx v1.2.0
github.com/satori/go.uuid v1.2.0
google.golang.org/appengine v1.6.1 //indirect #indirect:间接引用
)
replace ( #模块依赖替代,
golang.org/x/crypto v0.0.0-20180820150726-614d502a4dac
=> github.com/golang/crypto v0.0.0-20180820150726-614d502a4dac
golang.org/x/net v0.0.0-20180821023952-922f4815f713
=> github.com/golang/net v0.0.0-20180826012351-8a410e7b638d
golang.org/x/text v0.3.0
=> github.com/golang/text v0.3.0
)
版权声明:本文为qq_38473355原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。