最近学一下Go语言,做个记录
环境
- Ubuntu 20.04
- VScode
- Golang 1.18.1
安装
首先在官网下载源码:
然后使用命令解压:
sudo tar -zxvf go1.18.1.linux-amd64.tar.gz
将解压后的go
文件夹移动到usr
目录下:
sudo cp -r go /usr/local/
回到根目录,新建文件夹golib
作为依赖包存放的位置:
cd ~
mkdir golib
编辑配置文件:
vim .bashrc
在其末尾添加go的根目录,并配置其依赖包的路径为/home/dubito/golib
:
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=/home/dubito/golib
export PATH=$PATH:$GOPATH/bin
刷新配置文件:
source ~/.bashrc
输入命令行,查看是否安装成功:
go version
若出现对应版本号即为成功:
配置
在创建的golib文件夹内可以使用命令安装依赖包,例如:
go get rsc.io/quote
然后会发现报错:
dial tcp 142.251.43.17:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
这是由于GOSUMDB
配置的地址为海外的缘故,可通过命令go env
进行查看:
通过以下命令修改其配置:
go env -w GOSUMDB=off
go env -w GOPROXY=https://goproxy.cn,direct
然后该错误就不存在了。
在根目录下新建文件夹test
作为工作区,并在其内新建三个文件夹,分别是src
、bin
、pkg
:
然后打开vscode,将test
文件夹拖到里面。
点击左侧extension
按钮,安装插件:
然后在src目录下新建名为hello
的文件夹,然后新建文件main.go
即可开始进行编程:
Hello World
程序运行
书写代码:
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}
其中,第一行表示定义包,这里定义为main
表示项目入口;第二行引入标准库fmt
,第三行定义函数main
,第四行使用fmt
的Println
方法输出Hello World!
。
Ctrl+S
保存,发现右下角出现提示:
点击install all
按钮,安装依赖包:
若安装不成功需参考上文配置代理并重启vscode。
然后转到下方terminal
,输入命令运行程序:
go run src/hello/main.go
程序编译
通过go build
命令,程序可以被编译为二进制文件,在terminal输入命令:
go build hello
发现报错:
package hello is not in GOROOT (/usr/local/go/src/hello)
在搜索了各类教程后,发现两个问题:
- 应直接在项目根目录运行命令
go build
进行编译 - 编译器默认编译环境为go mod模式,但从本文的配置方法来看应该是gopath模式,因此使用命令
go env -w GO111MODULE=off
设置模式后重启vscode,再进入项目根目录进行编译
最终编译成功,项目根目录下出现名为hello
的二进制文件,使用命令./hello
执行文件,出现Hello World!
: