整个 context 包原码就有一个文件即 context.go,我估计 context 的设计就是由 http 引出来的,学习 context 其实也是学习 go 的接口设计范式。
go time 包
时间概念
时间对所有程序语言来说原理都是一样的:时间点、时间段、时区和显示格式。
- 时间点:时间点没有时区差异,也就是说全世界无论哪个时区都是同一个时间点,时间戳就是时间点的表达方式,所以时间戳没有时区差异。
- 时间段:时间段其实就是一个整数型,从小到大依次是皮秒(ps)、纳秒(ns)、微秒(μs)、毫秒(ms)、秒(s),在 go 程序中 1s == 1e9。
- 时区:时间点有时区差异,同一个时间戳在不同时区具有时差区别。
- 显示格式:这部分没有逻辑问题,纯粹是视图显示。