Go 语言核心 36 讲
郝林
《Go 并发编程实战》作者,前轻松筹大数据负责人
79610 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 55 讲
Go 语言核心 36 讲
15
15
1.0x
00:00/00:00
登录|注册

新年彩蛋 | 完整版思考题答案

标准库的用法
Go程序的测试
数据类型和语句篇
基础概念篇
思考题答案大全

该思维导图由 AI 生成,仅供参考

你好,我是郝林。
在 2019 年的春节来临之际,我恰好也更新完了专栏所有的配图和思考题答案。希望这些可以帮助到你,在新的一年中,祝你新年快乐,Go 语言学习之路更加顺利。

基础概念篇

1. Go 语言在多个工作区中查找依赖包的时候是以怎样的顺序进行的?

答:你设置的环境变量GOPATH的值决定了这个顺序。如果你在GOPATH中设置了多个工作区,那么这种查找会以从左到右的顺序在这些工作区中进行。
你可以通过试验来确定这个问题的答案。例如:先在一个源码文件中导入一个在你的机器上并不存在的代码包,然后编译这个代码文件。最后,将输出的编译错误信息与GOPATH的值进行对比。

2. 如果在多个工作区中都存在导入路径相同的代码包会产生冲突吗?

答:不会产生冲突。因为代码包的查找是按照已给定的顺序逐一地在多个工作区中进行的。

3. 默认情况下,我们可以让命令源码文件接受哪些类型的参数值?

答:这个问题通过查看flag代码包的文档就可以回答了。概括来讲,有布尔类型、整数类型、浮点数类型、字符串类型,以及time.Duration类型。

4. 我们可以把自定义的数据类型作为参数值的类型吗?如果可以,怎样做?

答:狭义上讲是不可以的,但是广义上讲是可以的。这需要一些定制化的工作,并且被给定的参数值只能是序列化的。具体可参见flag代码包文档中的例子。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了Go语言的基础概念和高级话题,包括多工作区中查找依赖包的顺序、自定义数据类型作为参数值类型、切片指向同一底层数组的注意事项等常见问题。此外,还介绍了特殊数据结构的使用场景,如循环链表、堆等。涉及到通道、字典类型的并发安全性、结构体类型的嵌入等高级话题。文章还包含了一些思考题答案,涉及到goroutine的限制、类型switch语句中的类型转换、错误类型和值、测试、标准库的用法等内容,为读者提供了全面的知识点梳理和思考。同时,还介绍了`strings.Builder`和`strings.Reader`的接口实现、`io`包中的同步内存管道、`bufio.Scanner`类型的特点、`os`包中创建和操纵系统进程的方法、`net.Conn`类型的超时时间设置、优雅停止基于HTTP协议的网络服务程序以及`runtime/trace`代码包的功用。整体而言,本文内容丰富,适合对Go语言有一定了解的读者阅读。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Go 语言核心 36 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • ...
    大神 发现一篇文章go的陷阱, http://ju.outofmemory.cn/entry/351623 描述了很多对go不满的地方和陷阱,我想知道对于开发者在大型项目中如何避免或者进入陷阱以及如何排查。或者有什么规范要求

    作者回复: 大部分所谓的陷阱或者坑,都是由于不了解语言机理而犯的错误。使用编程语言B的理念和哲学去理解编程语言A必然会出问题。

    2019-02-18
    20
  • 傻乐
    今天才真正看完,从开课到现在,有点滞后太多,因为我是个数据方向的,学完收益真高,现在所有的数据深层次的bug都可以结合编程思想定位解决,还可以自己写想要的工具,谢谢

    作者回复: 赞👍!

    2019-04-30
    3
  • 夏林
    第23个答案是不是少打了一些字? 比如:在同一个应用场景下,map[int] [int]bool类型的值占用更少的存储空间。

    作者回复: 嗯,看到了,谢谢!这句话应该是: 比如:在同一个应用场景下,map[int]struct{} 类型的值会比 map[int]bool 类型的值占用更少的存储空间。

    2021-11-09
    2
  • 无为
    40 题: 拷贝一个已经被使用的sync.Cond值不会引发 panic, 但是使用这个副本的时候会引发 panic.

    作者回复: 嗯,这里描述有误,我通知编辑修改,谢谢!

    2022-02-08
  • ddh
    感谢老师, 老师有大才

    作者回复: 不客气:)

    2021-12-24
  • 传说中的成大大
    郝老师你好,今天我在看你的go并发编程实战的时候对于一个因为系统调用而挂起的g 运行时系统会把M与当前G所属的P断开连接或者关联!如果P中还有可以运行的G则运行时系统再为这个P找一个空闲的M或者新建一个M让G运行!我不明白的时候为什么要断开以后再关联?而不是先把阻塞的G先放一放,直接执行可以运行的G,这样效率不是更高吗?

    作者回复: 你说的这句话在第几页?我没找到啊。

    2020-05-09
  • 慢熊胖胖跑
    郝老师有心了!赞一个,顺祝身体健康

    作者回复: 谢谢!

    2020-04-26
  • 小勇
    老师:刚刚学习完课程,还是个新手,目前工作中还没有用golang,怕忘了,自己练手写了个简单的不用反射的orm,希望老师能给些意见,实际工作中可不可以用,https://github.com/chu108/corm.git

    作者回复: 建议现在边缘项目上用,但是必须要用,这样才能发现问题。

    2019-11-14
    2
  • 我只想问一句 go啥时候能把java干掉

    作者回复: 为什么要干掉?各有各的长处和生态。一门编程语言一般有两种死法。一种死法是慢慢地消失在历史的长河当中(自然死亡),另一种死法是被某个组织扼杀。这些编程语言除非自身存在致命的缺陷,否则肯定不会被竞争对手挤死。你觉得 Java 会以怎样的方式死去?

    2019-07-21
  • 小强
    感谢老师,通过专栏学到很多,最近工作中需要用go去重构一部分应用,在写代码中发展,以前是基于自己的编程基础去看的本专栏,导致go的很多基础知识没记牢固,在此再定个目标,反复多过几遍,希望能真正的掌握本专栏的内容,而不光是浅层面的理解。

    作者回复: 加油!

    2019-04-08
收起评论
大纲
固定大纲
基础概念篇
1. Go 语言在多个工作区中查找依赖包的时候是以怎样的顺序进行的?
2. 如果在多个工作区中都存在导入路径相同的代码包会产生冲突吗?
3. 默认情况下,我们可以让命令源码文件接受哪些类型的参数值?
4. 我们可以把自定义的数据类型作为参数值的类型吗?如果可以,怎样做?
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部