这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天,今天初步体验了go语言的开发。实现了几个小功能,熟悉了简单的go语法。
本节课简单的介绍了一下go语言的语法,要点如下
- go语言的环境配置
使用vscode配置go环境: 先下载go语言环境(官方网站)再在vscode中下载go插件
途中遇到了 需要下载的工具包无法下载的问题,知乎搜索后发现是到国外下载所导致的,切换国内源后就成功了。 说的简单,卡了一个小时。
- go的变量定义
一般常用 var 变量名 变量类型 = 变量
“ =变量” 和 变量类型 其中一个可以省略 也可以用 变量名 := 变量来自动判断类型
- if else
与c++类似,不过没有括号,大括号要放在if后面,编译器会帮忙解决的
- 循环
与c++类似,不过只有for。三个部分都可以省略,根据提前所学的内容,也可以用
for idx,value := range(字符串或者map类容器){
}
来进行类似c++的高级for循环定义
- switch
不需要加case,也可以不加变量,在case后面写表达式当作if else 嵌套使用
- 数组
与c类似,不过有区别,类似下面
int a[5]
var a [5]int
[5]位置的防止编译器会解决。
- 切片
类似vector,使用 make([]int,长度) 构造
可以用append追加函数,类似于push_back
也可以用类似python的语法 s[2:] 来打印第二个元素后的所有元素
- map
是哈希表,语法: map[key]value
- range
遍历一个容器所用,可以用于高级for
for idx,value := range mp{
}
- 函数
使用语法
func 函数名(a,b int) 返回值{
}
- 指针
类似于c,不过只支持取值和取地址,不允许++ , -- 操作
- 结构体 type 结构体名 struct{ 值 类型 值 类型 }
构造可以像java一样声明 成员: 值
也可以像c++一样全部塞进去,自动按结构体的顺序解析
- 结构体方法
在函数中 只需要在func后面加一句
func (结构体变量 结构体名) 函数名(传入参数 类型) 返回值{
}
即可
写成大写可以被其他包调用
- 错误处理
用单独的返回值来传递错误信息
一般使用如下逻辑判断错误并处理
if err != nil {
业务逻辑
return
}