go time
1. 时间基础操作
1.1 时间的表示
获取当前时间可以使用 time.Now(),Now 返回的是 Time 结构的结构,Time 是对即时时间的抽象。time.Time的结构如下:
获取当前时间可以使用 time.Now(),Now 返回的是 Time 结构的结构,Time 是对即时时间的抽象。time.Time的结构如下:
这个系列我们开始学习 Go 语言的第五个部分: 库。 接下来我们就从 Go 的文件 I/O 说起。
Go基于io.Writer和io.Reader这两个简单的接口类型构建了图57-1所示的Go标准库读写模型。
在Go中,通过系统信号是实现优雅退出的一种常见手段。
应用程序收到系统信号后,一般有三种处理方式。
服务端程序一般都是以守护进程的形式运行在后台的,并且我们一般都是通过系统信号通知这些守护程序执行退出操作的。如果执行默认处理动作直接退出,守护进程将没有任何机会执行清理和收尾工作。因此,对于运行在生产环境下的程序,不能忽略对系统信号的处理,而应采用捕捉退出信号的方式执行自定义的收尾处理函数。
Go语言默认源码文件中的字符是采用UTF-8编码方案的Unicode字符。在Go中,每个rune对应一个Unicode字符的码点,而Unicode字符在内存中的编码表示则放在[]byte类型中。从rune类型转换为[]byte类型,称为“编码”(encode),而反过来则称为“解码”(decode)。
每个语言都有一些 hacker 编程,这些 hacker 编程在某些时候能起到奇效,但是不能被乱用。
获取 goroutine id,方式有两种,分别是
runtime.Stack 方法可以获取当前的 goroutine 信息,第二个参数为 true 会输出所有的 goroutine 信息,信息的格式如下:
go 程序包组织结构和程序管理工具箱
包和模块的概念几乎存在于所有的编程语言之中,它的存在是为了简化大型程序的设计和维护工作。通过将一组相关的特性放进一个独立的单元以便于理解和更新,这种特性提供诸多益处: