Go 语言圣经读书笔记 第一章

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • fmt格式化字符串 格式:%[旗标][宽度][.精度][arg索引]动词旗标有以下几种:+: 对于数值类型总是输出...
    皮皮v阅读 1,117评论 0 3
  • 01.{ 换行: Opening Brace Can't Be Placed on a Separate Lin...
    码农不器阅读 2,421评论 0 14
  • 第一章五个程序 都很好!但是初学编程/没有其他语言基础的不容易看懂。 记一遍不熟悉的东西: who = strin...
    暗黑破坏球嘿哈阅读 1,444评论 0 10
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,845评论 18 139
  • 是该让才华横溢,被世人认可, 在当下名声大噪,然后 沉默于历史之中? 还是该让思想的花朵绽放, 谦卑的俯...
    静留庭阅读 330评论 0 2