快速搞定Go语言环境,帮你避坑

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

大家好,我是老表,最近有想法了解学习下Go语言,也顺便开启Go语言学习专栏,希望自己站在一个初学者角度,能写出一些对其他初学者或者有问题的读者朋友有帮助的内容。

Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易,主要有以下特点:

  • 可直接编译成机器码,性能强劲
  • 支持并发,垃圾回收
  • 标准库很多,也很小,开发效率高
  • 代码简洁,格式统一,阅读方便

安装环境

进入go语言官网下载安装包,这里我们下载稳定版中的 installer版本。 官网地址:golang.google.cn/dl/ 相比于解压版,直接安装包安装可以省去自己配置环境变量等操作,傻瓜式一键安装,方便,适合初学者。 安装完成后,我们可以打开终端,查看go是否安装好了,输入go version即可测试go指令是否正常,并查看安装的go版本。 正常显示版本信息,就说明go环境安装成功啦~

测试使用:Hello world

新建一个目录go,用于存放go语言相关代码,在go目录下新建一个hello.go,

cd Desktop/Project/ && mkdir go
touch hello.go
复制代码

直接用文本编辑器打开,将下面代码复制进去,然后保存关闭,这样我们就写好go语言第一个项目代码啦。

package main
import "fmt"

func main() {
  /* 程序员的第一行代码 */
	fmt.Println("Hello, World!")
}
复制代码

打开终端,进入到对应的目录,并执行go run运行代码:

cd Desktop/Project/go 
go run hello.go 
复制代码

接下来我们简单解析下这几行代码各自的作用:

// 表示当前文件hello_go.go 所在包是main
package main

// 表示导入一个包,和Python中导包类似
import "fmt"

/*
go中用func来定义函数
函数定义格式:func 函数名字(){
	函数内容
}
main是程序执行入口
*/
func main() {
	// 程序员的第一行代码
	// 调用fmt包中的Println打印字符串
	fmt.Println("Hello, World!")
}

复制代码

以上我们就安装并简单使用go编写了一个项目,接下来我们将进行进一步学习。

安装&使用vs code

为了更方便的学习、编写代码,安装一个好的开发工具是很必要的,网络上查了一下,最终选择了vs code,主要原因:开源免费、插件多、之前也听很多大佬说过,两个字:好用。

基础安装

官网下载地址:code.visualstudio.com/ 选择好对应的系统,然后下载稳定版。

下载好,解压后直接点击即可打开使用,都不用安装,还可以安装中文语言包,直接界面汉化,使用更方便。

太爱了,安装了很多工具包:

快捷操作

Ctrl/Command+P 快速调出查询窗口,可以查找文件,跳转
Ctrl/Command+Shift+P 快速调出命令窗口,可以执行一些指令,比如snippets,设置快捷代码块
Ctrl/Command+Shift+M 快速显示“问题”面板
Ctrl/Command+H 查找替换
Ctrl/Command+Shift+F 在整个文件夹中查找
Ctrl + ~ 调出终端或者隐藏
复制代码
  • 设置快捷代码块

在vs code中 Ctrl/Command+Shift+P,然后输入snippets,点击进去后,先选择要添加代码片段的语言,比如go。 进入配置文件后,会有注释提示

{
	// Place your snippets for go here. Each snippet is defined under a snippet name and has a prefix, body and 
	// description. The prefix is what is used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
	// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. Placeholders with the 
	// same ids are connected.
	// Example:
	// "Print to console": {
	// 	"prefix": "log",
	// 	"body": [
	// 		"console.log('$1');",
	// 		"$2"
	// 	],
	// 	"description": "Log output to console"
	// }
  }
复制代码

我们根据注释提示输入一个字典(json串)即可,比如下面利用pln拓展fmt.Println($0)

"println":{
		"prefix": "pln",  # 触发代码块生效
		"body":"fmt.Println($0)",  # 拓展代码块内容
		"description": "println"  # 注释
    }
复制代码

在vs code中新建一个go项目

直接文件->新建文件会新建一个代码文件,不是一个文件夹或者初始化的什么项目,同时这个文件还可以先自己选择编程语言,或者程序自己识别。 这里我们选择文件-打开然后到Desktop/Project/go(我们之前专门用于存储go项目的目录)下面新建一个hello_go文件夹,以这样的方式新建一个项目。

新建好项目文件后,可以再文件夹中新建一个01_hello_go.go文件,然后将前面写的hello_world代码复制粘贴进去即可。 Ctrl+F5可以自动运行,也可以在功能栏选择运行-非调试模式运行。 第一次运行会提示需要安装相关工具包,在让程序安装前需要先设置Go国内加速镜像,先打开终端/cmd,输入下面代码即可:

# mac
export GO111MODULE=on
export GOPROXY=https://goproxy.io,direct

# windows
$env:GO111MODULE = "on"
$env:GOPROXY = "https://goproxy.io,direct"
复制代码

然后在在vscode内更新go工具包即可,如果找不到安装键了,可以再运行一遍代码或者按Ctrl/Command+Shift+P,然后输入update tools选择go这个就可以。 如果还是更新失败,我觉得你可能和我一样是文件权限问题,我安装不上是因为/usr/local/go/bin目录权限问题导致(最后才发现)!!!

sudo chmod -R 777 /usr/local/go/bin
复制代码

如果还是不行,那太难了,你就只能手动安装了,步骤如下:

第一步:下载相关工具包 下面所有git地址我都换成了国内可以访问的快速地址,希望对大家有所帮助~

# 进入go环境,并创建src/golang.org/x目录
cd $GOPATH
mkdir -p src/golang.org/x && cd src/golang.org/x
# 从github下载必要插件工具包
git clone https://hub.fastgit.org/golang/tools.git
git clone https://hub.fastgit.org/golang/lint.git
git clone https://hub.fastgit.org/golang/mod.git
git clone https://hub.fastgit.org/golang/xerrors.git
复制代码

第二部:安装相关工具包

# 这里比较坑的是 tools的工具包需要你到tools/cmd目录下进行安装,或者在后面加一个@latest。比如:
cd $GOPATH/src/golang.org/x/tools/cmd
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
复制代码
cd $GOPATH
mkdir -p src/github.com && cd src/github.com
git clone https://hub.fastgit.org/stamblerre/gocode.git stamblerre/gocode
git clone https://hub.fastgit.org/acroca/go-symbols.git acroca/go-symbols
git clone https://hub.fastgit.org/ramya-rao-a/go-outline.git ramya-rao-a/go-outline
git clone https://hub.fastgit.org/mdempsky/gocode.git mdempsky/gocode
git clone https://hub.fastgit.org/go-delve/delve.git go-delve/delve
git clone https://hub.fastgit.org/uudashr/gopkgs.git uudashr/gopkgs
复制代码
# 新版本安装包 需要加版本信息,如果不确定,可以在后面加@latest
# 表示安装最新版本
cd $GOPATH
go install github.com/stamblerre/gocode@latest
go install github.com/ramya-rao-a/go-outline@latest
go install github.com/acroca/go-symbols@latest
go install github.com/mdempsky/gocode@latest
go install github.com/go-delve/delve/cmd/dlv@latest
复制代码

如果安装完这些还提示缺什么,就按上面方法git下载,然后install即可。

(前面已经说了,这里再感叹下,这个问题卡了我1天时间!!!)前面这么多手动操作,到最后发现是自己目录权限问题导致安装不上的,直接修改下权限就可以安装成功了,悟了!

sudo chmod -R 777 /usr/local/go/bin
复制代码

相关依赖包的安装好后,我们再运行代码就可以成功的输出Hello World啦~

下期见,我是爱猫爱技术的老表,如果觉得本文对你学习有所帮助,欢迎点赞、评论、关注我!

参考文章

[a]为什么要使用 Go 语言?Go 语言的优势在哪里?:www.zhihu.com/question/21…

[b]Mac 系统下 Go 语言环境的安装与配置:bbs.huaweicloud.com/blogs/detai…

[c]Go语言有什么好用的IDE吗?www.zhihu.com/question/25…

[d]Atom、Sublime Text、VSCode 三者比较,各有哪些优势和弱势?www.zhihu.com/question/41…

[e]LiteIDE X 与 VSCode www.reddit.com/r/golang/co…

[f]VS Code配置Go语言开发环境 www.liwenzhou.com/posts/Go/00…

[e]macos安装go语言和vscode插件 blog.csdn.net/luxingjyp/a…

[f]vscode 安装 golang插件,报错 permission denied www.cnblogs.com/fsqsec/p/14…

おすすめ

転載: juejin.im/post/7031487034791624712