这是我参与「第五届青训营 」伴学笔记创作活动的第1天
一、golang的下载和安装
这一步比较简单,直接打开go的官网,点击download即可,个别人打开慢可以用中国的镜像网站,之后访问的速度和下载第三方库的速度会快很多,之后傻瓜式安装一路到底即可。
配置环境变量
注意:如果是msi安装文件,Go语言的环境变量会自动设置好。
****我的电脑----右键“属性”----“高级系统设置”-----“环境变量”----“系统变量”
现在假设Go安装在C盘跟目录下
新建:
GOROOT : Go安装路径(例如:C:\Go)
GOPATH:Go工程的路径(例如:E\go)。如果有多个,就以分号分隔添加
Path:在path中添加:C:\Go\bin;%GOPATH%\bin 需要把GOPATH中的可执行目录也配置到环境变量中,否则你自行下载的第三方go工具就无法使用了。
工作目录就是我们用来存放开发的源代码的地方,对应的也是Go里的GoPATH这个环境变量。这个环境变量指定之后,我们编译源代码等生成的文件都会放到这个目录下,GOPATH环境变量的配置参考上面的安装Go,配置到Windows下的系统变量里。
GOPATH之下主要包含三个目录:bin、pkg、src。bin目录主要窜犯可执行文件;pkg目录存放编译好的库文件,主要是*.a文件;src目录下主要存放Go的源文件。
二、查看是否安装配置成功。 使用快捷键win+R键,输入cmd,打开命令行提示符,在命令行输入 go env #查看得到go的配置信息 go version #查看go的版本号
配置go的编译器或IDE
虽然貌似vscode使用最广泛??但是我个人实在是用不惯vscode,所以我选用goland,习惯了那一套操作逻辑,并且确实他的自动化程度比较高一点hh。
再来一个所有程序猿的浪漫吧,入门的hello world程序
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
1.第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包,main包就是程序的入口。
2.下一行 import “fmt” 告诉 Go 编译器这个程序需要使用 fmt 包(的函数,或其他元素),fmt 包实现了格式化 IO(输入/输出)的函数。
3.下一行 func main() 是程序开始执行的函数。main 函数是每一个可执行程序所必须包含的,一般来说都是在启动后第一个执行的函数(如果有 init() 函数则会先执行该函数)。
4.下一行 /…/ 是注释,在程序执行时将被忽略。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
5.下一行 fmt.Println(…) 可以将字符串输出到控制台,并在最后自动增加换行字符 \n。 使用 fmt.Print(“hello, world\n”) 可以得到相同的结果。 Print 和 Println 这两个函数也支持使用变量,如:fmt.Println(arr)。如果没有特别指定,它们会以默认的打印格式将变量 arr 输出到控制台。
注意
需要注意的是 { 不能单独放在一行,代码在运行时会产生错误
在Go语言中,如果只有一个文件,那package必须是 main,否则会报错。
Go是一门支持多返回值的语言,这使得它可以将真正的返回值和error分开返回,这同样也使得error的处理很难自动化进行,我们必须在err != nil的时候手动结束函数流程。同样,Go语言的error也是非常灵活和自然的。你会发现在Go语言中处理error不需要任何额外的语法,而且不需要扩展if的语义。至于错误应该何时传播,何时终止传播,何时处理,这并不是Go语言的问题,而是所有语言的问题。
当出现不等于nil的时候,说明出现某些错误了,需要我们对这个错误进行一些处理
if err != nil {
//运行异常错误
// do something....
}
当出现等于nil的时候,说明出现运行正常,可以正常编写业务逻辑代码
if err == nil {
//运行正常
// do something....
}