练习1.1:修改echo程序输出os.Args[0],即命令的名字。

package mainimport ("fmt""os"
)func main(){if len(os.Args) > 0 {fmt.Println(os.Args[0])}
}

运行:go run main.go args args2

输出:

/var/folders/w1/vvlknvm10l3b8391hzltdh0h0000gn/T/go-build287366431/b001/exe/main

练习1.2:修改echo程序,输出参数的索引和值,每行一个。

package mainimport ("fmt""os"
)func main(){for k,value := range os.Args{fmt.Println(k)fmt.Println(value)}
}

运行:go run main.go args args2

输出:

0
/var/folders/w1/vvlknvm10l3b8391hzltdh0h0000gn/T/go-build005548217/b001/exe/main
1
args=1
2
args2

练习1.3:尝试测量可能低效的程序和使用strings.Join的程序在执行时间上的差异。(1.6节有time包,11.4节展示如何撰写系统性的性能评估测试。)

未做

练习1.4: 修改dup2程序,输出出现重复行的文件的名称。

package mainimport ("bufio""fmt""os""strings"
)func main(){files := os.Args[1:]if len(files) == 0 {return}var result []stringfor _, arg := range files{f, err := os.Open(arg)if err != nil{fmt.Fprintf(os.Stderr, "dup2: %v\n", err)continue}counts := make(map[string]int)countLines(f, counts)f.Close()for _,v := range counts{if v > 1 {result = append(result,arg)break;}}}fmt.Println(strings.Join(result," "))
}func countLines(f *os.File, counts map[string]int){input := bufio.NewScanner(f)for input.Scan(){counts[input.Text()]++}
}

$ go run main.go file1.txt file2.txt file3.txt
file1.txt file3.txt

Go程序设计语言 练习题相关推荐

  1. go程序设计语言练习题

    来自 go程序设计语言 一书 源博客地址go程序设计语言练习题 练习题3.10 编写一个非递归的comma函数,运用bytes.Buffer,而不是简单的字符串拼接 package mainimpor ...

  2. java语言程序设计答案_《java语言程序设计》练习题及答案

    <java语言程序设计>练习题及答案 JAVA 语言程序设计题及部分答案 一.单选题:(每题1分)下列各题A).B).C).D)四个选项中, 只有一个选项是正确的,请将正确选项的标记写在题 ...

  3. C 程序设计语言——第四章练习题

    C 程序设计语言第二版--第四章练习题 1. Write the function strindex(s,t) which returns the position of the rightmost ...

  4. c语言程序设计函数题,C语言程序设计函数练习题及参考答案

    <C语言程序设计函数练习题及参考答案>由会员分享,可在线阅读,更多相关<C语言程序设计函数练习题及参考答案(60页珍藏版)>请在人人文库网上搜索. 1.C语言程序设计练习题及参 ...

  5. c语言程序设计函数题,C语言程序设计函数练习题及参考答案.doc

    C语言程序设计函数练习题及参考答案.doc C 语言程序设计练习题及参考答案 1. 定义一个函数 int funint a,int b,int c, 它的功能是 若 a,b,c 能构成等边三角形函数返 ...

  6. c语言中1%3c%3c2 什么意思,c语言练习题

    篇一:C语言考试题库及答案 C语言理论上机考试选择题部分(共200题,仅针对11级定向专业) 1.下面程序的输出是___D______ #include void main() { int k=11; ...

  7. 我们利用计算机解决问题时第一步应该,算法与程序设计综合评价练习题

    算法与程序设计综合评价练习题 一.利用计算机解决问题的基本过程 判断题: 1.一个算法有一个或多个输出,但可以没有输入.()参考答案:正确. 2.我们常说的程序设计语言就是程序设计.()参考答案:错误 ...

  8. 如何用计算机编程算题,计算机二级Web程序设计章节练习题

    计算机二级Web程序设计章节练习题 二级定位为程序员,考核内容包括公共基础知识和程序设计.所有科目对基础知识作统一要求,使用统一的公共基础知识考试大纲和教程.这是小编提供的计算机二级Web程序设计章节 ...

  9. vb编写一个计算机配置选择程序,2016计算机二级《VB程序设计》练习题及答案

    2016计算机二级<VB程序设计>练习题及答案 一.选择题 1.以下能够触发文本框Change事件的操作是(C) A.文本框失去焦点 B.文本框获得焦点 C.设置文本框的焦点 D.改变文本 ...

  10. 进阶 c程序设计语言,C程序设计进阶

    你将学到什么 Computer Display Standard C Programming C++ 课程概况 如果说学习过<计算导论与C语言基础>,你已经迈入了C语言的殿堂,那么< ...

最新文章

  1. Python.Scrapy.12-scrapy-source-code-analysis-part-2
  2. 算法艺术——网络最大流
  3. Dubbo负载均衡与集群容错
  4. 怎么让程序后台运行_CPU中的程序是怎么运行起来的?
  5. js打开android应用程序,浏览器通过JS打开Android程序
  6. ae合成复制脚本_稀缺资源—这几个AE脚本使用频率很高,赶紧收藏吧!
  7. Oracle和MySQL的几点区别
  8. TensorFlow都有哪些模块?
  9. 在linux通过源码编译安装redis详细步骤
  10. PHP系列(十三)PHP会话控制
  11. ECMAScript 学习笔记01
  12. 【转】PLC编程软件: KW multiprog 和 codesys
  13. 利用VB操作目录和文件夹
  14. 烽火服务器查询服务器型号,烽火服务器应该起的进程
  15. 桂林理工研究生院计算机软件工程,2019桂林理工大学硕士研究生复试细则之软件工程...
  16. python闯关2-罗马数字编码
  17. unity抠人像原理_抠出精细发丝人像图片的PS抠图教程
  18. L289N步进电机驱动原理
  19. java图片镜像代码_Java OpenCV实现图像镜像翻转效果
  20. c语言离散卷积编程,数电实验一 离散卷积的C语言编程.ppt

热门文章

  1. 烦了,放弃卡巴——改用小红伞
  2. 西北工业大学生态环境学院张文宇课题组博士后招聘启事
  3. 《数据挖掘概念与技术》第二版 中文版 第二章答案
  4. opencv——访问图像元素(imagedata widthstep)
  5. 鱼和熊掌可兼得?一文看懂又拍云 SCDN
  6. Android系统签名文件
  7. java 第三方jar推荐_java 开发第三方Jar包
  8. Practical JXTA II
  9. 淘宝装修基础版全屏店招
  10. 软件测试——测试用例设计方法