Go后端技术学习总结-Day4 | 青训营

49 阅读1分钟

书接上回,更多内容请移步主页查看“后端技术学习总结|青训营”系列。

Go语言语法初步讲解

  1. array数组(不常用,该模块只给出2个定义示例)
func main(){
    //定义数组
    var a[5]int
    //定义数组并赋值
    b := [5]int{1,2,3,4,5}
}
  1. slice切片。相当于无长度限制的数组,使用make来创建
func main() {
    //创建切片s
    s := make([]string, 3)
    s[0] = "a"
    s[1] = "b"
    s[2] = "c"
    //获取切片中的s0和s1元素,逗号会自动将内容拼接到一起
    fmt.Println("get:", s[0], s[1])   //输出“get: a b”
    //获取切片的长度
    fmt.Println("len:", len(s)) //输出“len: 3”
    
    //往切片中添加元素d,e,f
    s = append(s, "d")
    s = append(s, "e", "f")
    fmt.Println(s) //输出“a b c d e f”

    //复制切片s到c中
    c := make([]string, len(s))
    copy(c, s)
    fmt.Println(c) // [a b c d e f]

    //打印起始
    fmt.Println(s[2:5]) // [c d e]
    fmt.Println(s[:5])  // [a b c d e]
    fmt.Println(s[2:])  // [c d e f]

    //字符串赋值方法?
    good := []string{"g", "o", "o", "d"}
    fmt.Println(good) // [g o o d]
}

  1. map哈希,存储了键/值(key/value)的集合。个人理解:类似于一一绑定的数组,每个位置的名字可以定义。
func main() {
    //创建map结构,多个“map”多个“String”
    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"]
    fmt.Println(r, ok) // 0 false

    //删除方法
    delete(m, "one")
    
    //另种定义方法(和数组类似)
    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]”
}

存疑内容:r,k所在行意义不明,如有知情者还请大佬指定迷津!