数组和切片的区别
容量是否可伸缩
是否可以进行比较
UTF-8, unicode
unicode 是一种字符集(code point)
utf-8 是 unicode 的存储实现(转换为字节序列的规则)
字符 | “中” |
---|---|
Unicode | 0x4E2D |
UTF-8 | 0xE4B8AD |
string/[]byte | [0xE4,0xB8,0xAD] |
按位清零 &^
LSP
接口使用原则
只依赖功能最小的接口
panic vs os.Exit
os.Exit 退出时不会调用 defer 指定的函数
os.Exit 退出时不输出当前调用栈信息
package
注意代码在 github 上的组织形式,以适应 go get。直接以代码路径开始,不要有 src
Thread vs Groutine
创建是默认的 stack 大小
JDK1.5 以后 java Thread stack 默认为 1M
Groutine 的 stack 初始化大小为2k和 KSE (Kernel Space Entity)的对应关系
Java Thread 是 1:1
Groutine 是 M:N
行为方法定义
1 | type Employee struct { |
channel 的关闭
- 向关闭的 channel 发送数据,会导致 panic
- v,ok<-channel 为 bool 值, true 表示正常接受, false 表示通道关闭
- 所有的channel 接收者都会在 channel 关闭时, 立刻从阻塞等待中返回且上述 ok 值为 false。这个广播机制常被利用,进行向多个订阅者同时发出信号。如:退出信号。