Go简单介绍
Go是一种新的语言,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。它具有以下特点:
- 编译速度快。
- 更加容易的依赖分析。
- Go是静态类型的语言,面向对象语言更轻量级。
- Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。
Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生了。
Go环境安装
Go有三种安装方式,包括 Go标准包安装(推荐这种安装方式),第三方工具安装,Go源码安装。
本文主要讲解的 Mac 安装方式: 下载安装包地址: 下载地址
然后一路默认安装点击下一步。
go version
go version go1.19 darwin/amd64
Go环境变量配置
cd ~.bash_profilevi .bash_profile
export GOROOT=/usr/local/go
export GOPATH=/Users/your mac user/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
source ~/.bash_profilego env
/Users/rock/Library/Application Support/go/env"go env GOENV
GO中环境变量介绍
GOROOT
GOROOT
此值尽量不要修改,保持默认值即可。如果乱改了,然后发现无法在控制台中使用go命令了,需要修改环境变量中的值与其保持一致。
GOPATH
GOPATHworkspace
GOPATH的值不能与GOROOT相同。
export GOPATH=/Users/your mac user/go/go;$home/go
GOPATH目录下的每个工作一般分为三个子目录:src,pkg,bin. 第二目录中也是需要这三个目录的。
srcpkg.amaingo installbin
GOBIN
GOBIN
go installGOBINGOBINGOPATH/bin
GO111MODULE
go modulegomodulego.modonoff
go env -w GO111MODULE=on
GOPROXY
GOPROXYGolanggithub
GoGOPROXYhttps://proxy.golang.orghttps://goproxy.cn
go env -w GOPROXY=https://goproxy.cn,direct
GOMODCACHE
$GOPATH/pkg/modGOPATH
编写代码
GOPATHmain.go
package main
import "fmt"
func mian() {
fmt.Println("hello world")
}
go run main.go
go build
使用 Go Module
go mod init [module 名称]go mod tidygo get -v **********go get -u
常用的命令:
go mod init # 初始化 go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖文件
go mod vendor # 将依赖转移至本地的 vendor 文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
Go 命令
go build
$GOPATH/pkggo installgo build$GOPATH/bingo installgo build -o 路径/a.exego buildgo build a.gogo buildgo build -o astaxie.exepackagemainmain
packagepackage
go build_.go
参数这里就不介绍了。
go clean
这个命令是用来移除当前源码包和关联源码包里面编译生成的文件。这些文件包括
_obj/ 旧的object目录,由Makefiles遗留
_test/ 旧的test目录,由Makefiles遗留
_testmain.go 旧的gotest文件,由Makefiles遗留
test.out 旧的test记录,由Makefiles遗留
build.out 旧的test记录,由Makefiles遗留
*.[568ao] object文件,由Makefiles遗留
DIR(.exe) 由go build产生
DIR.test(.exe) 由go test -c产生
MAINFILE(.exe) 由go build MAINFILE.go产生
*.so 由 SWIG 产生
go fmt
go强制了代码格式,可以用此命令来格式化文件。
go get
go install
go install
$GOPATH/pkg$GOPATH/bin
go test
*_test.go
go run
编译并运行Go程序