golang3 基本概念

172 阅读1分钟

四、包/函数

4.1、命令行参数

os.Args变量是一个字符串(string)的切片(slice)

s[i] 访问单个元素
s[m:n] 获取子序列
序列的元素数目为len(s)

os.Args[1:] 从1:len(os.Args)

os.Args[:len(os.Args)) 从0:到len(os.Args)

4.2、Println

是一个基础函数,可以打印 以空格间隔的一个或多个值,并在最后添加一个换行符,从而输出一整行。

4.3、main 包

比较特殊。它定义了一个独立可执行的程序,而不是一个库。

在 main 里的 main 函 数 也很特殊,它是整个程序执行时的入口。 

main 函数所做 的事情就是程序做的。

当然, main 函数一般调用其它包里的函数完成很多工作, 比如,fmt.Println

4.4、counts := make(map[string]int)

counts := make(map[string]int)

map存储了键/值(key/value)的集合,对集合元素,提供常数时间的存、取或测试操作。

键 可以是任意类型,只要其值能用 == 运算符比较,最常见的例子是字符串;

值则可以是任意类 型。这个例子中的键是字符串,值是整数。

内置函数 make 创建空 map

4.5、fmt.

4.5.1、fmt.Printf("%d\t%s\n", n, line)

image.png

4.5.2、fmt.Sprintf("while reading %s: %v", url, err)

fmt.Sprintf("while reading %s: %v", url, err)

fmt.Sprintf("%.2fs  %7d  %s", secs, nbytes, url)

fmt.Fprintf(w, "URL.Path = %q\n", r.URL.Path)


fmt.Fprintf(w, "%s %s %s\n", r.Method, r.URL, r.Proto)

4.6、if err != nil

f, err := os.Open(arg)
            if err != nil {
                fmt.Fprintf(os.Stderr, "dup2: %v\n", err)

os.Open 返回的第二个值是内置 error 类型的值。

如果 err 等于内置值 nil (相当于 其它语言里的NULL)