Go 语言圣经读书笔记 第一章
2016-10-30 本文已影响0人
有个魔王卡尔萨
1.2 命令行参数
如果连接涉及的数据量很大,一种简单且搞笑的解决方案是使用 strings 包的 Join 函数
func main() {
fmt.Println(strings.Join(os.Args[1:], " "))
}
练习
1.1 修改 echo 程序, 使其能够打印os.Args[0], 即被执行命令本身的名字。
func main() {
fmt.Println(strings.Join(os.Args[:], " "))
}
1.2 修改 echo 程序,使其能够打印每个参数的索引和值, 每个一行。
func main() {
for i, arg := range os.Args[1:] {
fmt.Println(i, arg)
}}
1.3 做实验测量潜在低效的版本和使用了 strings.Join 的版本的运行时间差异
暂无
1.3 查找重复的行
对文件做拷贝、打印、搜索、排序、统计或类似事情的程序都有一个差不多的程序结构:一个处理输入的循环,在每个元素上执行计算处理,在处理的同时或最后产生输出。
bufio 包:它使处理输入和输出方便又高效。Scanner 类型是该包最有用的特性之一,它读取输入并将其拆成行或单词;通常是处理行形式的输入最简单的方法。
程序使用短变量声明创建 bufio.Scanner 类型的变量 input。
input := bufio.NewScanner(os.Stdin)
该变量从程序的标准输入中读取内容。每次调用 input.Scanner ,即读入下一行,并移除行末的换行符;读取的内容可以调用 input.Text() 得到。Scan 函数在读到一行时返回 true ,在无输入时返回 false。
开坑, 阅读《go语言圣经》的笔记和练习