序言:本系列非教学资料,而是笔者自己的一个学习过程笔记。如理解有误,请前辈们多多指教。
笔者的笔记摒弃大篇幅的理论,而是从多从代码和个人理解去阐述一些自认为学习过程中需要停下来思考、吸收的知识
本篇介绍的还是采取远古的go path配置go环境
Go安装包下载
因Go的官网在国外(不好下载),我们可以到Go在国内的一些社区网站下载Go的安装包。这里推荐GO语言中文网。Windows环境安装较为简单,所以不做过多阐述。因笔者是在linux环境下进行环境的配置,所以简单说下配置过程:
-
下载对应版本的安装包(笔者下载的linux 64位)
-
解压
tar-zxvf 压缩包名
安装包到/usr/local
路径下 -
Go的代码需要统一放于一个工作空间中,并为此空间配置
GOPATH
和Go开发工具的环境变量,对于此工作目录,需要存放三个子目录结构:
GoWorkSpace
├── bin:编译后生成的源码文件
├── pkg:在go install后生成的可执行文件的目录
└── src :所有Go项目源代码存放地设置
GOPATH
和Go sdk
环境变量:
修改sudo vim /etc/profile
系统环境变量:export GOROOT=/usr/local/go #Golang安装目录 export GOPATH=/Home/GoWorkSpace #Golang项目工作目录 export PATH=$GOROOT/bin:$PATH #Linux环境变量 export GOBIN=$GOPATH/bin #go install后生成的可执行命令存放路径
-
source /etc/profile
刷新环境变量信息
IDE
笔者使用的集成开发环境是十分轻量级的Vscode,在里面只需要安装Go插件:
接下来需要安装一些go的开发工具,在vscode中使用ctrl + shift + p
输入Go,找到Install/Update Tools
选项会看到一下的工具,我们全选,下载:
在安装过程中应该会发现,下载速度简直感人,这是因为go的官方网站在国外。所有我们可以配置下这些开发工具官方库到国内代理去下载
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
开发环境至此就搞定了
在开始go编程之前,有些常识是必须知道的
- 编写了go命令源代码(main包+main函数入口)后,我们可以在源代码路径中执行
go run 源代码名字.go
去直接运行我们的go程序,也可以通过go install
命令去编译安装代码为可执行文件,然后再去执行(这就比较繁琐了) - 在编译生成go程序的时候,go实际上会去两个地方找程序包:
GOROOT
下的src
文件夹和GOPATH
下的src
所以我们在编译一个go的命令源文件的时候不用写绝对路径,直接写文件名即可如go install fileName
,然后会在gopath
或rootpath
(当有多个gopath的时候会放在rootpath中)中的bin
中生成一个可执行文件,linux下通过./filename
就可以运行该我们编写的go程序了 - 也可以使用
go build fileName
编译文件,它会在当前目录下生成可执行文件 - 可以直接使用
go build
或go install
不加文件名,需要注意的是,该用法只适用于当前工作目录只有一个命令源文件时使用 - 在程序包里,自动找main包的main函数作为程序入口,即
package main
和func main()
,然后进行编译(这部分内容会在下面提到)
下面进入正题系列之前,需要先简单的认识三个关键字,package 、 func、main 因为在编写最基本的hello world
程序的时候,都会看到它们的身影:
package
表示的是一个包 后面跟着的是包的名字如package main
,它声明了其下代码所属的包,其实就是c#中命名空间那味儿import
表示代码所需要使用的包,学过一点python的小伙伴应该十分熟悉了func
表示声明的是一个函数,像大多数语言一样,程序的入口是一个main函数,函数体使用的是{}
包起来的部分
语言的入门代码示例:
package main
import (
"fmt"
)
func main() {
fmt.Println("Hello, Jochen")
}
ps:如果你的vscode出现了智障不智能补全老是报错的行为,大致是因为gopls导致的(这玩意需要搭配go mod使用,可参考本篇文章了解,我们可以选择关闭掉
此时编译器就会提示你下载gocode,下载即可