go 数据格式转换
1. json
2. yaml
3. ini
4. binary
标准库提供的binary包直接读写抽象数据类型实例。binary 只支持采用定长表示的抽象数据类型。
5. gob
gob包也是Go标准库提供的一个序列化/反序列化方案,和JSON、XML等序列化/反序列化方案不同,它的API直接支持读写实现了io.Reader和io.Writer接口的实例。
标准库提供的binary包直接读写抽象数据类型实例。binary 只支持采用定长表示的抽象数据类型。
gob包也是Go标准库提供的一个序列化/反序列化方案,和JSON、XML等序列化/反序列化方案不同,它的API直接支持读写实现了io.Reader和io.Writer接口的实例。
strings 和 bytes 提供了 go 语言中的字符操作,因为还不不支持泛型,所以这两个包提供了几乎一样的函数和类型,区别仅仅在于一个操作 string,其中大致可分为如下几类:
获取当前时间可以使用 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)。