go基础语法笔记

116 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 主要记下了自己平时容易忘记的go相关的基础语法

go相关语法

if

  1. if中的判断语句不再需要有括号
    if 7%2 == 0 {
        fmt.Println("7 is even")
    } 
  1. if后可以先跟一个赋值语句,再跟一个逻辑表达式
    if num := 9; num < 0 {
        fmt.Println(num, "is negative") //判断num是否为负数
        }

switch

  1. switch 语句中不再需要在语句的后面加上break语句
switch a {
    case 1:
        fmt.Println("one")
        }
  1. switch 后面也可以不需要跟表达式
switch {
case t.Hour() < 12:
    fmt.Println("It's before noon")
default:
    fmt.Println("It's after noon") //It's after noon
}

循环语句

  1. go中没有while循环,只有for循环
  2. for中的表达式与c++相同,但是也不需要加上括号
  3. go中的所有接大括号的,左大括号{ 都不能单独在下一行,必须与原表达式在同一行
这样写没有问题
for j := 7; j < 9; j++ {
    fmt.Println(j) //输出7  8
}
这样写则会出错 
for j := 7; j < 9; j++ 
{
fmt.Println(j) //输出7  8
}

go中的切片

  1. 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]

\