阿章的go语言教程[1]-安装和你的第一行代码

安装golang

教程的一开始当然是安装golang,已经安装好的同学可以跳过本章节。

mac windows安装

打开golang官方下载网站 Downloads - The Go Programming Language (golang.org) 可以看到各个平台的安装包

如果是windows的可以点击go1.17xxxx.msi下载,mac的选择macOs的xxx.pkg进行下载。如果是苹果M1芯片的mac可以下载darwin-arm64.pkg的进行下载。然后点击下一步下一步进行安装。

linux下载解压安装

也是在这个页面可以找到linux版本压缩包的下载地址,鼠标右键复制链接地址。然后执行命令下载解压

wget https://golang.org/dl/go1.17.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local

Linux mac配置环境变量

通过将 Go 目录添加到$PATH环境变量,系统将会知道在哪里可以找到 Go 可执行文件。

这个可以通过添加下面的行到/etc/profile文件(系统范围内安装)或者$HOME/.profile文件(当前用户安装):

如果自己的用户目录下有.bashrc或.zshrc(Mac),一定要编辑到对应的文件中,因为.bashrc(前提shell是bash,如果你的shell是zsh,那么就是.zshrc)优先级最高,无论是登录shell还是非登录shell。关于linux配置文件加载顺序感兴趣的可以参考我的博客:linux登录配置文件加载顺序 - 阿章的革命根据地 (azhangbaobao.cn)

export GOROOT=/usr/local/go
export GOPATH="${HOME}/go"
export GOBIN=${GOPATH}/bin
export GOPROXY="https://goproxy.cn,direct"
export PATH=$PATH:/usr/local/go/bin
export GO111MODULE=on

环境变量的解释

这里面GOROOT是go安装包的路径

GOPATH是程序寻找第三方的路径(已逐渐弃用,但是为了兼容还是要给点面子配一下)

GOBIN是程序编译打包的默认输出路径。

GOPROXY这个是给中国特殊使用的,比如go get安装第三方包的时候很多是从gitlab或者golang官网去拉,网络访问不了,配置之后安装的时候会从代理网站去拉取。

GO111MODULE表示是否启用mod来管理包,现在逐渐都是使用mod来管理了,取代了原来的GOPATH方式。

PATH目录你肯定知道,就是把单个目录下的所有二进制程序可以在整个系统任意文件夹下能直接通过名字访问到。

保存文件,并且重新加载新的PATH 环境变量到当前的 shell 会话:

source ~/.profile  # 或者改成你自己的 source ~/.bashrc  ~/.zshrc

Windows 把go的bin程序添加到系统环境变量

好消息是windows版的安装完成之后会把go的bin目录自动追加到PATH环境变量当中了,这个不需要再去配置了。

Windows重新配置GOPATH

在Windows 10下,你可以通过在系统“控制面板”中,“高级”标签上的“环境变量”按钮来设置环境变量。 Windows的一些版本通过系统“控制面板”中的“高级系统设置”选项提供此控制板。

保存成功后

打开终端运行 go env 命令

windows除了配置GOPATH,其他的像GOPROXY这些配置可以参考上面linux的值进行相同的配置。

卸载golang

卸载Go,其实就是将前面安装Go的东西全部删除:

  • 1.删除 go 目录:
sudo rm -rf /usr/local/go
  • 2.删除软链接:
sudo rm /usr/bin/go /usr/bin/gofmt

你的第一个go程序

前置条件

前置条件是你已经成功安装了golang,检测你是否安装的标志是在控制台执行

go env

不报错命令找不到。如果报这个错误请再参考上面的教程查看哪一步没有配置。

编写代码

使用随便一个你喜欢的代码编辑器或文本编辑器(记事本也可以),新建一个hello.go的文件

package main

import "fmt"

func main() {
	fmt.Println("下定决心,不怕牺牲,排除万难,去争取胜利。")
}

保存退出

运行

在命令行执行

go run hello.go

你会成功看到输出。

恭喜你已经成功运行了你的第一个go程序。如果我想把它发给我的朋友,你还需要做一步:编译。 编译是将代码文件(文本)转换成可以直接运行的二进制程序(windows上是exe)的过程。

go build hello.go

运行编译命令之后会发现当前文件夹下多了一个main.exe (windows)环境下,mac环境下是main

接下来就可以直接执行了

好了,你可以把你的程序直接拷贝给你的朋友了。mac linux下记得要先把程序的执行权限加上。

chmod +x ./main

如果我是在mac下编写的代码,我想分享给我的朋友,但是她的操作系统是windows。怎么办呢?就可以尝试下go特有的交叉编译功能,很强大的。

GOOS=windows GOARCH=amd64 go build main.go

改命令可以在任意平台(包括mac)上执行,作用是把main.go生成为main.exe,就可以直接发给朋友了,很强大吧!!!