前30页大概用了一个上午的时间。粗略的将30页作为读此书的基准。30 pages in one day。
这本书大概有三百页,我每天可以阅读30页,如果我能阅读80%的内容,并且能够理解其中的70%,那么给我10个人天,我将掌握这本书的60%。考虑到清明3天,五一5天,3天,哪怕不算上周六周日,6月份吾亦能读完此书。
golang note 第一天
一个很重要的一点就是不可竭泽而渔,一天的精力是有限的,没有人可以一天学完一本书,人生应该留白而不是满满当当的。
第一章 入门
for是golang中唯一的循环语句,但是有多种形式。
_(下划线)是空标识符。
go doc可以用来查看文档,可以理解为一种代码注释阅读器。
type可以给已有类型命名。
第二章 程序结构
和其他语言一样,golang中的大程序都是从小的基本组件构建而来 :变量存储值;简单表达式通过加和减等操作合并成大的;基本类型通过数组和结构体进行聚合;表达式通过if和for等控制语句来决定执行顺序;语句被组织成函数用于隔离和复用;函数被组织成源文件和包。
在这里我学习了new函数。
new(T),T是类型,例如new(int)
func newInt() *int {
return new(int)
}
包的导入,包的初始化。简单的了解了init函数。
还有一个make函数好像挺重要的,目前我还不太理解。
第三章 基本数据
这里介绍了数据类型
golang的数据类型分为四大类:基础类型、聚合类型、引用类型、接口类型
基础类型
基础类型包括数字、字符串、bool
这一章还介绍了位运算符,但这里我不太好理解。位运算是我的弱点和短板,很难补齐,至少我认为很难。
golang中的字符串是不可变的字节序列。
字符串和数字的相互转换。
常量。
常量生成器iota
第四章 复合数据类型
复合数据类型重点讲解4种:数组、slice、map和结构体。
golang note第二天 todo
2022-04-17
第8章 goroutine和通道
今天困得不行,遂至公司复习了一下goroutine和通道。其实goroutine从概念上来讲还是比较简单的,通道的操作有发送和接收,通道按照有没有缓存分为无缓存通道和有缓存通道。
通道可以再一个goroutine中发送和接收吗?
书中给了明确的回答,不可以,因为通道和goroutine的调度深度关联,如果没有另一个goroutine从通道进行接收,发送者有被永久阻塞的风险。
读到8.5并行循环处实在看不下去了,待从头收拾旧山河吧。
2022-04-09 golang学习第三天
我打算稍微更改下学习策略,因为我无法严格的按照顺序来阅读这本书,毕竟有些内容我不是那么的感兴趣,所以我的阅读方式修改为,我想学哪里,我就读哪里。
第13章 低级编程(底层编程)
我认为这里的翻译其实是有问题的,低级在汉语中的意思,不能够完全的表述golang底层变成的含义,就应该叫做底层编程。
这一章主要涉及两个内容,unsafe包,和cgo包,unsafe我先跳过了,但是cgo,让我想起了曾经的ctypes,曾经沧海难为水,除却巫山不是云。
cgo和ctypes有什么不同呢?好像除了cgo是未golang准备的,ctypes是为python准备的,并没有其他的不同。姑且这么理解,如果任何人有不同看法,欢迎交流讨论。
13.4 使用cgo调用C代码
13.5 快乐
golang真的让人感觉很快乐。
更重要的是在我最需要心灵慰藉的时候,golang成了我的圣经,它让我获得了心灵的宁静。
我不信佛,但是golang对我的作用不亚于佛经对信徒的作用,golang使我获得了真正的宁静。
本书的最后,作者欣然写到,我们希望你和我们一样喜欢用Go来编程。侠之大者,为国为民,如此高风亮节,令人景仰不已。