这是我参与「第三届青训营 -后端场」笔记创作活动的第2篇笔记
1. 配置go语言开发环境
以linux为例,先打开golang官网,在install页面下载对于操作系统的安装包,安装文档提示输入以下命令,移除旧版本的golang,将新版本解压到/usr/local目录下
rm -rf /usr/local/go
tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz
添加环境变量,使用vim打开/etc/profile文件,在文件末尾添加下面一行
export PATH=$PATH:/usr/local/go/bin
执行以下命令
source /etc/profile
执行以下命令检查golang是否安装成功
go version
为golang添加代理,以便更快的下载go包,打开七牛云 - Goproxy.cn,按照提示输入以下命令
export GO111MODULE=on
export GOPROXY=https://goproxy.cn, direct
下载合适的编辑器或者IDE,如VS Code、Goland
2. 基础语法
- Hello World
package main
import (
"fmt"
)
func main() {
fmt.Println("hello world")
}
main为主包,main函数为程序的入口函数
- 变量
显式给定变量类型
var a int = 1
根据初始化的值自动确定类型
var b = "initial"
通过:=定义变量,若函数外有同名变量定义,注意区分该变量是全局变量还是局部变量
f := true
- 条件语句
与C语言类似,但条件两侧没有小括号(),以及语句无论是一条还是多条必须使用大括号{}
if actionType == 1 {
do something...
} else if actionType == 2 {
do something...
} else {
do something...
}
- 循环语句
只有for循环语句和for-each语句,for循环语句同条件语句不需要()
for i := 0; i < 10; i ++ {
fmt.Println(i)
}
for _, user := range users {
do something...
}
- 分支语句
与C语言类似,但与C语言不同的一点是,go语言不需要加break来结束分支语句的执行。
switch actionType {
case 1:
do something...
case 2:
do something...
default:
do something...
}
- 数组与切片
数组与C语言类似,可以通过index来访问数组元素,切片类似于可变长数组,可指定一个初试容量,在容量不足的时候会自动扩容。同时切片支持append操作,在末尾追加元素。以及支持取其中的某个范围的元素。
var a [5]int
var b [2][3]int
s := make([]string,5)
s[1] = "a"
s = append(s, "b")
fmt.Println(s[:3])
- map
一组key-value键值对,支持通过key添加、修改、访问或者删除value的值。
m := make(map[string]int)
m["one"] = 1
r, ok := m["unknow"]
fmt.Println(m["one"])
delete(m, "one")