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

47 阅读1分钟

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

Go语言语法初步讲解

  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]”
}

  1. range,产生一对值:索引以及在该索引处的元素值。
import (
    "fmt"
    //OS为打印命令行的包
    "os"
)

func main() {
    s, sep := "", ""
    //不需要索引值的时候使用空标识符“_”代替,os.Args表示从命令行中读取获得的参数,os.Args[0]默认为命令本身的名字,所以从1开始遍历
    for _, arg := range os.Args[1:] {
        s += sep + arg
        sep = " "
    }
    //执行结果是拿出一个个程序启动时传给它的参数,以空格间隔
    fmt.Println(s)
}

//等价插入间隔的还有如下的方式,使用strings的Join包
import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(strings.Join(os.Args[1:], " "))
}