在啃《go程序设计语言》时,官方的例子没明白,通过以下例子加强记忆

package main

import (
    "fmt"
    "os"
)

func main() {
    var s, sep string
    fmt.Println(os.Args)
    fmt.Println(os.Args[0])
    for i := 1; i < len(os.Args); i++ {
        fmt.Println(len(os.Args))
        s += sep + os.Args[i]
        sep = ""
        fmt.Println(s)
    }
    fmt.Println(s)
}
//终端输入
//>>>go run main.go 1 2 3

//终端返回
[/var/folders/vp/xk96hm1s28s4yggxg0hpxrb00000gn/T/go-build3468342993/b001/exe/main 1 2 3]
/var/folders/vp/xk96hm1s28s4yggxg0hpxrb00000gn/T/go-build3468342993/b001/exe/main
4
1
4
12
4
123
123


上述返回数据中含义:
5行 os.Args返回原始命令行参数
6行 os.Args[0]为获取命令行参数程序的路径
7行 切片os.Args的长度
8行 循环体内第一次循环,输出1=os.Args[1]的值
9行 同理7行
10行 循环体内第二次循环,输出12=1+os.Args[2]的值
11行 同理7行
12行 循环体内第三次循环,输出123=12+os.Args[3]的值,4=i++,4=len(os.Args),不满足判断条件,循环体不执行
13行 输出s的值