复习 Golang Chapter 1 开发环境与配置

学习安装以及配置常见的 Go 环境变量用于开发环境
学习 Go 的一些基本命令以及工具(Makefile)

如何安装与组织你的目录

go 的安装方法直接上 官方网站 按自己的操作系统来

you are free to organize your projects as you see fit.

环境变量

你安装的 third-party 工具所在的地方

$HOME/go
$HOME/go/src 源码目录
$HOME/go/bin build 后的二进制可执行文件目录

注意,你可以自由的设置 $GOPATH 环境变量来影响上面的 go 路径,不设置的话默认就是你的用户目录下
建议明确指定你的 GOPATH 环境变量,并且把 $GOPATH/bin目录置于操作系统的可执行路径 path 下,这样你通过 go install 安装后的工具可以直接在命令行使用

Linux like

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Windows

setx GOPATH %USERPROFILE%\go
setx path "%path%;%USERPROFILE%\bin"

注意:现在已经不使用 GOROOT 环境变量指定 Go 开发环境位置了

编译命令

go run <file_name> 编译后执行并删除掉临时二进制文件
go build <file_name> 编译文件,可以使用 -o <file_name> 参数指定输出文件名

获取第三方的Go工具

不像 Java 的 Maven,js 的 NPM,Go 没有一个中心化的主机服务用于提供这些包
我们使用第三方源代码仓库 go install <repo_address@repo_version>,下载编译,并且安装到 $GOPATH/bin 目录下,如果你之前将这个目录添加进可执行目录,这时你就可以使用该程序了
但是要注意,不是所有的仓库都支持你当前使用的 Go 版本编译,如果你下载的应用提供了对应系统的发行版,直接下载是最好的
另外,使用此命令需要你安装 Git
如果需要更新到新版本,@符号后指定一个新版本号或者 @latest 表示最新
$HOME/bin 目录下的是生成出来的二进制文件,你可以放到你计算机下的任何其他目录,就是一个普通的 OS 下的可执行文件,在 Windows 下就是一个 exe 文件

强制的代码格式

go fmt

分号插入规则
Go 需要分号,但是 Go 开发者从来不手动放置分号,这个工作由编译器来处理,会有一个自动分号插入规则,规则作用于语句末尾的最后一个 token,会触发补全分号的 token 类型如下

  1. 一个标识符( int, float64)
  2. 基本字面量,数字或者字符串常量
  3. break, continue, return, ++, --, ), }, fallthrough

Always run go fmt or goimports before compiling your code!

仅仅有 go fmt 还远远不够,所有的 Go 开发者应该阅读

golint

$ go install golang.org/x/lint/golint@latest

术语 lint 来源于贝尔实验室,第一个 linter 写于 1978 年

golangci-lint
https://golangci-lint.run/usage/install/

Makefile

Go 使用 makefile 作为构建工具

.DEFAULT_GOAL := build

fmt:
	go fmt ./...
.PHONY:fmt

lint: fmt
	golint ./...
.PHONY:lint

vet: fmt
	go vet ./...
.PHONY:vet

build: vet
	go build hello.go
.PHONY:build

Windows 下安装 make

如果使用的是 windows,先安装一下 Chocolatey
以管理员权限启动命令行,然后运行下列命令

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
PS D:\ch1> choco -v
2.2.2
PS D:\ch1> choco install make

Go 多版本使用方法

书上的 go get golang.org/dl/go.x.y.z 已经过期了

$ go get golang.org/dl/go.1.15.6
$ go1.15.6 download
go: go.mod file not found in current directory or any parent directory.
        'go get' is no longer supported outside a module.
        To build and install a command, use 'go install' with a version,
        like 'go install example.com/cmd@latest'
        For more information, see https://golang.org/doc/go-get-install-deprecation
        or run 'go help get' or 'go help install'.

starting in Go 1.17, installing executables with go get is deprecated. go install may be used instead.

https://go.dev/doc/manage-install#installing-multiple
现在(2023年11月4日)的方法

PS D:\ch1> go install golang.org/dl/go1.21.3@latest
PS D:\ch1> go1.21.3 download
Downloaded   0.0% (   16384 / 73755567 bytes) ...
Downloaded   6.7% ( 4931584 / 73755567 bytes) ...
Downloaded  41.9% (30883648 / 73755567 bytes) ...
Downloaded  72.9% (53739120 / 73755567 bytes) ...
Downloaded 100.0% (73755567 / 73755567 bytes)
Unpacking C:\Users\windows_user\sdk\go1.21.3\go1.21.3.windows-amd64.zip ...
Success. You may now run 'go1.21.3'
PS D:\ch1> go1.21.3 version
go version go1.21.3 windows/amd64
posted @ 2023-11-04 21:25  我听不见  阅读(34)  评论(0编辑  收藏  举报