本文针对 Go 语言圣经 - 《Go 程序设计语言/The Go Programming Language》的所有习题进行筛选去重后,选取了一些比较典型的案例(80%以上)进行解析解答,分为两个版本,分别适合有原书和没有原书的童鞋进行学习巩固,本文将持续更新。

原书版

第一章:入门

  • 1.1:修改 echo 程序输出 os.Args[0],即命令的名称。
  • 1.2:修改 echo 程序,输出参数的索引和值,每行一个。
  • 1.3:尝试测量可能低效的程序和使用 strings.Join 的程序在执行时间上的差异。
  • 1.4:修改 dup2 程序,输出出现重复行的文件的名称。
  • 1.7:函数 io.Copy(dst, src) 从 src 读,并且写入 dst。使用它代替 ioutil.ReadAll 来复制响应内容到 os.Stdout,这样不需要装下整个响应数据流的缓冲区。确保检查 io.Copy 返回的错误结果。
  • 1.8:修改 fetch 程序添加一个 http:// 前缀(假如该 URL 参数缺失协议前缀)。可能会用到 strings.HasPrefix。
  • 1.9:修改 fetch 来输出 HTTP 的状态码,可以在 resp.Status 中找到它。
  • 1.10:找一个产生大量数据的网站。连续两次运行 fetchall,看报告的时间是否会有大的变化,调查缓存情况。每一次获取的内容一样吗?修改 fetchall 将内容输出到文件,这样可以检查它是否一致。
  • 1.11:使用更长的参数列表来尝试 fetchall,例如使用 alexa.com 排名前 100 万的网站。如果一个网站没有响应,程序的行为是怎样的?

第二章:程序结构

  • 2.1:添加类型、常量和函数到 tempconv 包中,处理以开尔文为单位(K)的温度值, 0K = -273.15℃,变化 1K 和变化 1 ℃ 是等价的。
  • 2.2:写一个类似于 cf 的通用的单位转换程序,从命令行参数或者标准输入(如果没有参数)获取数字,然后将每一个数字转换为以摄氏温度和华氏温度表示的温度,以英寸和米表示的长度单位,以磅和千克表示的重量,等等。
  • 2.3:使用循环重写 PopCount 来代替单个表达式。对比两个版本的效率。

第三章:基本数据

  • 3.10:编写一个非递归的 comma 函数,运用 bytes.Buffer,而不是简单的字符串拼接
  • 3.11:增强 comma 函数的功能,使其正确处理浮点数,以及带有可选正负号的数字
  • 3.12:编写一个函数判断两个字符串是否同文异构,也就是,它们都含有相同的字符但排列顺序不同
  • 3.13:用尽可能简洁的方法声明从 KB、MB 直到 YB 的常量

第四章:复合数据类型

  • 4.2:编写一个程序,用于在默认情况下输出其标准输入的 SHA256 散列,但也支持一个输出 SHA384 或 SHA512 散列的命令行标记
  • 4.3:重写函数 reverse,使用数组指针作为参数而不是 slice
  • 4.4:编写一个函数 rotate,实现一次遍历就可以完成元素旋转。
  • 4.5:编写一个就地处理函数,用于去除 []string slice 中相邻的重复字符串元素
  • 4.6:编写一个就地处理函数,用于将一个 UTF-8 编码的字节 slice 中所有相邻的 Unicode 空白字符(查看 unicode.IsSpace)缩减为一个 ASCII 空白字符
  • 4.7:修改函数 reverse,来翻转一个 UTF-8 编码的字符串中的字符元素,传入参数是该字符串对应的字节 slice 类型([]byte)。你可以做到不需要重新分配内存就实现该功能吗?

无原书版

暂无

QQ 学习交流群:646026429

原文地址,欢迎收录

读书笔记,欢迎收录

Go 学习笔记,欢迎收录

Go 语言圣经-习题汇总(Go 程序设计语言/The Go Programming Language)相关推荐

  1. c加加属于面向对象的程序设计语言吗,下列语言中属于面向对象的程序设计语言是______。A、Visual BasicB、PASCALC、CD、FORTRAN...

    下列语言中属于面向对象的程序设计语言是______.A.Visual BasicB.PASCALC.CD.FORTRAN 更多相关问题 经纬仪如存在指标差,将使观测结果出现( ). 德治的约束作用主要 ...

  2. GO语言圣经习题:5.2 函数递归

    GO语言圣经:函数递归 习题解析 <GO语言圣经>:https://books.studygolang.com/gopl-zh/ch5/ch5-02.html 第五章函数.递归习题与解析 ...

  3. C程序设计语言第二版·新版,C程序设计语言(第2版·新版) PDF扫描版[19MB]

    C程序设计语言(第2版·新版) 内容简介: 本书是由C语言的设计者Brian W. Kernighan和Dennis M. Ritchie编写的一部介绍标准C语言及其程序设计方法的权威性经典著作.全面 ...

  4. 编程爱好者学vb还是python-Python语言为什么被称为高级程序设计语言?

    Python是一种令人惊叹的编程语言,毫无疑问.从1991年的卑微开始,它现在几乎无处不在.无论您是在进行Web开发,系统管理,测试自动化,devop还是数据科学,Python在您的工作中发挥作用的可 ...

  5. c 是高级程序设计语言吗,C语言是一种高级程序设计语言。

    语言种语而形不同土地地租地租成的远近距离是指市场. 高级管理地价的主要作用在于(. 程序.卑的特别向的陷入者自这种人或人更容易境地是内,比较许多陷入的缺人都容易交流失,通过现来体宗教这种的吸方式引力也 ...

  6. c语言是低级的高级程序设计语言,计算机高级程序设计(C语言)

    C语言复习资料(20) 2020-01-16 20:34:54 C语言复习资料链接https://wenku.baidu.com/view/2cb3868409a1284ac850ad02de80d4 ...

  7. c程序设计语言第五章,c程序设计语言第五章第7题答案

    7.\(\sum\limits_{k=1}^{100}k\) +\(\sum\limits_{k=1}^{50}{k}^2\) +\(\sum\limits_{k=1}^{10}{\frac{1}{k ...

  8. c程序设计语言k rpdf,《C程序设计语言》(KR)中文高清非扫描件

    php SPL学习 数据结构 SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能 SplStack - 该SplStack类提供了一种使 ...

  9. c#程序设计语言杜松江版_当前最流行的10款编程语言,你会哪种?

    现在市场上对计算机方面的人才需求量非常大,不过真正需要的是那些有技术的高端人才. 下面就是当前流行的编程语言,来看看都用了那些吧! (PS:排名仅代表作者观点,如有不同观点,请务必坚持自我哦~~~). ...

  10. 谭浩强c语言规范化的指数形式,C语言程序设计谭浩强第四期末复习重点.docx

    1. 1.问题分析2.设计算法3.编写程序4.对源程序进行编辑.编译和连接5.运行程序,分析结 6.编写程序文档 第一章程 序 设 计 和C 语 言 1.1.什么是计算机程序 程序:一组计算机能识别和 ...

最新文章

  1. SeciLog 1.3.1 发布,增加了全屏配置,自定义预警等新功能
  2. uc的剪切板能关掉吗_罗永浩的“卖身契”有法律效力吗?
  3. qt 进度条_Qt开源作品12-硬盘容量控件
  4. 淘宝前端工程师:国内前端行业十日谈(六)
  5. 文档管理系统 OpenKM
  6. 观点|通过短生命周期和最小权限原则保护软件供应链安全
  7. php UUID 分布式生成用不重复的随机数方法
  8. DIY手动定制一个属于自己的软件安装管理器工具盘[一]
  9. 多元统计分析基于r课后答案_多元统计分析课后练习答案.doc
  10. html语言文字加粗加大代码,css怎么把字体加粗加大?
  11. mysql模糊查询忽略大小写
  12. 基于android 的影院售票
  13. 数据结构之映射表(Map)---第一篇---用链表实现
  14. C++优化三板斧:Three Optimization Tips for C++
  15. Spark问题14之Spark stage retry问题
  16. 如何低成本化实时网络摄像头监控直播?
  17. 机器学习--sklearn之决策树(分类+回归)
  18. 电源:buck/boost/buck-boost相关计算公式
  19. 基于imx6的gt911触摸屏驱动移植
  20. 【C语言】经典编程题

热门文章

  1. 搞定Android开发环境部署——非常详细的Android开发环境搭建教程
  2. 数据挖掘概念与技术(原书第三版)范明 孟小峰译-----第三章课后习题答案
  3. 海马苹果助手ipad版_资源分享苹果越狱工具
  4. Truecrypt加密软件文件检测
  5. 文献阅读(245)Roller
  6. 分享两款免费的MySQL性能监控工具
  7. 轻量级日志收集转发 | fluent-bit指令详解(一)
  8. 做Meta分析要用哪些软件?Meta分析软件盘点,含软件安装包!
  9. Java关键字表格、Java有哪些关键字?
  10. 《模拟电子技术》–童诗白