golang简介
没有过多实战不做介绍。
使用原因
高中毕业后我就一直在用python,作为一种非常直觉化的语言,又有大量库进行辅助,python应该可以算为数不多的万能工具,它能比r,matlab的使用范围更广,比真正的编程语言门槛更低。 但是python的问题也是存在的,对库的严重依赖让python的学习路线有很强的割裂感,到后期完全就是在考验背库能力(学习python不是很推荐自己造轮子),写出的代码感觉有点像是戴着项圈跳舞,我不是很喜欢这种感觉。 golang与python有些相似度(至少比起rust来说,golang能够保持在我多少能理解一些的情况),据我看到的有一些python项目也在用golang重构,感觉golang可以算python玩家最不错的接盘侠了(?),但是问题也是存在的,比起python已经非常完善的一键布置,golang在windows下的配置过程可以说让我非常狼狈,所以想来给大家谢谢我的一些踩坑记录。
golang布置
下载
推荐在中文社区下载,我选择了msi文件,zip大概可以直接解压使用?整个流程只有选择下载路径,布置起来还是挺快的,如果默认安装的话应该不会出太多问题的,但是把东西一股脑塞进C盘是个不好的习惯,我选择了放在D:\golang
位置,于是灾难开始了。
为方便后文描述,假设[path]=D:\golang
,教程中只教了以下代码:
C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"
C:\> go env
打开powershell一通复制粘贴,虽然能看见GO111MODULE
与GOPROXY
被改变了,但是重新打开进行go env
会发现需要重新设置,故不推荐以这种方式进vscode下载文件搜索编辑系统环境变量
,在环境变量
中如下新建后填写上面的信息:
完成后不要急着打开vscode,注意观察GOMODCACHE,GOPATH,GOROOT,GOTOOLDIR位置是否设置在自己的文件位置下,继续新建系统变量,使:
C:\> $GOMODCACHE = "[path]\pkg\mod"
C:\> $GOROOT = "[path]"
C:\> $GOTOOLDIR = "[path]\pkg\tool\windows_amd64"
GOPATH已经在上方的用户变量处设置好了,即使在系统变量重新设置也无法更改,所以直接对用户变量修改变量值:
继续选择Path
,选择编辑,相对路径%USERPROFILE%\go\bin
也需要改为[path]\bin
,完成后最好将它上移一些位置,避免微软商城搞类似python那样的骚操作,全部完成后记得确认。
如果不改这些东西,vscode会将文件全部下载到新建的C:\User\User_name\go
位置,然后出现乱七八糟的报错,管理起来也会很麻烦。
配置
打开vscode,在扩展中搜索下载排在最上方的Go
,如果这是python语言,现在已经可以正常运行了。随便新建个test.go文件,尝试写点代码运行一下:
package main
import "fmt"
func main() {
fmt.Println("test")
}
写的时候会弹出通知,选择Install All
等它慢慢下载,以下是工具正常下载的截图:
完成后还是不能运行,经报错提示还需要一个go.mod文件,可以在终端用代码生成:
go mod init github.com/rocksun/hellogo
尝试F5
运行一下代码:
能跑起来,之前打开时package main
报过一些奇怪的错误,被标注了波浪双横线,内容大概是:
gopls was not able to find modules in your workspace.
……
神奇的是代码依旧是可以运行的,于是没怎么管,重新打开时弹出需要安装什么东西,果断Install All
,重新运行时就没再报错了。