这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 主要记下了自己平时容易忘记的go相关的基础语法
go相关语法
if
- if中的判断语句不再需要有括号
if 7%2 == 0 {
fmt.Println("7 is even")
}
- if后可以先跟一个赋值语句,再跟一个逻辑表达式
if num := 9; num < 0 {
fmt.Println(num, "is negative") //判断num是否为负数
}
switch
- switch 语句中不再需要在语句的后面加上break语句
switch a {
case 1:
fmt.Println("one")
}
- switch 后面也可以不需要跟表达式
switch {
case t.Hour() < 12:
fmt.Println("It's before noon")
default:
fmt.Println("It's after noon") //It's after noon
}
循环语句
- go中没有while循环,只有for循环
- for中的表达式与c++相同,但是也不需要加上括号
- go中的所有接大括号的,左大括号{ 都不能单独在下一行,必须与原表达式在同一行
这样写没有问题
for j := 7; j < 9; j++ {
fmt.Println(j) //输出7 8
}
这样写则会出错
for j := 7; j < 9; j++
{
fmt.Println(j) //输出7 8
}
go中的切片
-
go中的切片相当于一个可变的数组
s := make([]string, 3) //利用make函数,创建一个长度为3的字符串数组 s[0] = "a" s[1] = "b" s[2] = "c" fmt.Println("get:", s[2]) //输出:get: c fmt.Println("len:", len(s)) //输出:len: 3 s = append(s, "d") //追加字符串,注意需要将字符串返回到本体中 s = append(s, "e", "f") //追加字符串 fmt.Println(s) // [a b c d e f]
go中的map
//创建一个map,键为string , 值为int
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m) //输出: map[one:1 two:2]
fmt.Println(len(m)) // 2
fmt.Println(m["one"]) // 1
fmt.Println(m["unknow"]) // 0
r, ok := m["unknow"] //不存在键为unknow的键值对,因此r为0,且返回状态ok为flase
fmt.Println(r, ok) // 0 false
//删除m这个map中键为one的键值对,即:[one:1]
delete(m, "one")
fmt.Println(m) //输出:map[two:2]
m2 := map[string]int{"one": 1, "two": 2}
var m3 = map[string]int{"one": 1, "two": 2}
fmt.Println(m2, m3) //输出 :map[one:1 two:2] map[one:1 two:2]
\