func Practice01() {/*练习 1.1: 修改echo程序,使其能够打印os.Args[0],即被执行命令本身的名字。练习 1.2: 修改echo程序,使其打印每个参数的索引和值,每个一行。练习 1.3: 做实验测量潜在低效的版本和使用了strings.Join的版本的运行时间差异。(1.6节讲解了部分time包,11.4节展示了如何写标准测试程序,以得到系统性的性能评测。)*/fmt.Println("练习 1.1:")fmt.Println(strings.Join(os.Args[0:], " "))fmt.Println("练习 1.2:")for index, arg := range os.Args[1:] {fmt.Printf("args[%d]=%s\n", index, arg)}fmt.Println("练习 1.3:")//构造一个字符串的slicevar numSlice []stringnumSlice = make([]string, 10)for i := 1; i <= 100000; i++ {numSlice = append(numSlice, strconv.Itoa(i))}start1 := time.Now().Unix()_ = strings.Join(numSlice, " ")fmt.Printf("使用Join花费时间:%ds\n", time.Now().Unix()-start1)var s, sep stringstart2 := time.Now().Unix()for i := 0; i < len(numSlice); i++ {s += sep + numSlice[i]sep = " "}fmt.Printf("是用+=花费时间:%ds\n", time.Now().Unix()-start2)
}
func Practice02() {/*练习 1.4: 修改dup2,出现重复的行时打印文件名称。*/counts := make(map[string]int)files := os.Args[1:]if len(files) == 0 {countLines(os.Stdin, counts)} else {for _, arg := range files {f, err := os.Open(arg)if err != nil {fmt.Fprintf(os.Stderr, "dup2:%v\n", err)continue}countLines(f, counts, arg)f.Close()}}for line, n := range counts {//只显示个数大于等于1if n > 1 {fmt.Printf("%d\t%s\n", n, line)}}
}
func countLines(f *os.File, counts map[string]int, arg string) {input := bufio.NewScanner(f)for input.Scan() {if input.Text() == "exit" {break}counts[input.Text()]++if counts[input.Text()] > 1 {fmt.Println(arg)}}
}

《Go语言圣经练习题》相关推荐

  1. ComeFuture英伽学院——2020年 全国大学生英语竞赛【C类初赛真题解析】(持续更新)

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  2. ComeFuture英伽学院——2019年 全国大学生英语竞赛【C类初赛真题解析】大小作文——详细解析

    视频:ComeFuture英伽学院--2019年 全国大学生英语竞赛[C类初赛真题解析]大小作文--详细解析 课件:[课件]2019年大学生英语竞赛C类初赛.pdf 视频:2020年全国大学生英语竞赛 ...

  3. 信息学奥赛真题解析(玩具谜题)

    玩具谜题(2016年信息学奥赛提高组真题) 题目描述 小南有一套可爱的玩具小人, 它们各有不同的职业.有一天, 这些玩具小人把小南的眼镜藏了起来.小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的 ...

  4. 信息学奥赛之初赛 第1轮 讲解(01-08课)

    信息学奥赛之初赛讲解 01 计算机概述 系统基本结构 信息学奥赛之初赛讲解 01 计算机概述 系统基本结构_哔哩哔哩_bilibili 信息学奥赛之初赛讲解 02 软件系统 计算机语言 进制转换 信息 ...

  5. 信息学奥赛一本通习题答案(五)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  6. 信息学奥赛一本通习题答案(三)

    最近在给小学生做C++的入门培训,用的教程是信息学奥赛一本通,刷题网址 http://ybt.ssoier.cn:8088/index.php 现将部分习题的答案放在博客上,希望能给其他有需要的人带来 ...

  7. 信息学奥赛一本通 提高篇 第六部分 数学基础 相关的真题

    第1章   快速幂 1875:[13NOIP提高组]转圈游戏 信息学奥赛一本通(C++版)在线评测系统 第2 章  素数 第 3 章  约数 第 4 章  同余问题 第 5 章  矩阵乘法 第 6 章 ...

  8. 信息学奥赛一本通题目代码(非题库)

    为了完善自己学c++,很多人都去读相关文献,就比如<信息学奥赛一本通>,可又对题目无从下手,从今天开始,我将把书上的题目一 一的解析下来,可以做参考,如果有错,可以告诉我,将在下次解析里重 ...

  9. 信息学奥赛一本通(C++版) 刷题 记录

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 刷题 记录 http://ybt.ssoier. ...

  10. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

最新文章

  1. GANs中的明星StarGAN:使用单一模型执行多个域的图像转换,GAN之父点赞
  2. ARM平台硬件时钟中断周期HZ值计算
  3. 分享一下字符串匹配BM算法学习心得。
  4. 表格存储 SQL 查询多元索引
  5. Problem D: 删出多余的空格
  6. Java笔记-JNI中简单的参数与返回值处理
  7. 计算机中Git配置环境变量 - 教程篇
  8. 【arc068F】Solitaire
  9. pytorch中的乘法操作
  10. 工作那些事(十)谈谈技术主管(总监)
  11. 分布式数据库 Tracing (一)— Opentracing
  12. 算术左移,逻辑左移,算术右移,逻辑右移之间的区别
  13. vue列表的单独展开收起和全部展开收起
  14. 电子技术基础(三)__电路分析基础之重点__叠加原理
  15. 何谓-全无线UWB定位系统
  16. 利用python目录化整理PPT素材文件
  17. 什么是事件驱动(EDA)
  18. Maya:// 错误: line 1: 找不到过程“look”。 //
  19. 专家揭秘:补充叶黄素视力毫无改善,原因何在?
  20. 腾讯微搭小程序获取微信用户信息

热门文章

  1. 谷歌浏览器运行项目报错Uncaught SyntaxError: Unexpected token ‘ .‘
  2. 测试面试题之白盒测试的实用技术(问题及答案)
  3. 串口线传输距离之讨论
  4. k3导入账套_金蝶k3 12.0标准版年初新建了一个帐套 在数据平台交换把之前旧的帐套的基础资料都导入到新的帐套里了...
  5. 关于485通讯(不扯蛋)
  6. 计算机 桥牌 比赛,溧阳这场桥牌比赛圆满结束,看看冠军是谁
  7. Github: pull request 解决:There isn’t anything to compare
  8. 前端-跨端跨平台框架介绍
  9. AWS开源SaaS Boost加速云应用项目
  10. day01_redis