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语言圣经》的笔记和练习

上一篇下一篇

猜你喜欢

热点阅读