Golang(一) 入门

本文介绍了Go语言的安装、基本程序结构、编译与执行,包括交叉编译。接着讲解了gomodule的使用,如模块设置、GOPROXY配置及gomod命令,并展示了go.mod文件的示例。通过这篇文章,读者可以掌握Go语言的基础和模块管理工具的运用。
摘要由CSDN通过智能技术生成

Golang(一)

一、Go安装

Go官网下载地址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.modgo.sum

1.模式设置

  1. GO111MODULE=off禁用模块支持,编译时会从GOPATHvendor文件夹中查找包。
  2. GO111MODULE=on启用模块支持,编译时会忽略GOPATHvendor文件夹,只根据 go.mod下载依赖。
  3. 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
)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值