白驹过隙,转眼已经是 2024 年的最后一天了。今年第一天在麦当劳餐厅总结 2023 年的场景还历历在目,而今天的我则是坐在卧室的书桌下,写下 2024 年的年终总结。
HTML 基础
go 库学习之 slog 库
上一篇文章学习了 go 标准库的 log
包和 log/syslog
包,log
包提供了简单的日志记录功能,而 log/syslog
则提供了将日志记录到系统 syslog 服务的能力。这篇文章将继续学习标准库的 log/slog
库,log/slog
库提供了结构化日志功能,它所记录的日志包含了消息、日志级别以及通过键值对所表示的各种属性。
go 库学习之 log 库
这篇文章将开始学习 go 标准库提供的 log 功能。log
包提供了简单的、格式化日志输出功能,log/syslog
包则提供了访问系统日志服务(syslog)的能力,而 log/slog
包则提供了结构化日志功能。
这篇文章将首先学习 log
和 log/syslog
包。
go 库学习之 fmt
Go 标准库的 fmt 包提供了类似于 C 风格 printf/scanf 的格式化 I/O 工具。这篇文章将学习 Go fmt 的基本使用方法和实现原理。
go 库学习之 bufio
标准库的 bufio 包实现了带缓冲的 I/O。它对 io.Reader 或 io.Writer 进行封装,并返回一个新的 io.Reader 或 io.Writer 对象。新的 I/O 对象在原有的 io.Reader 或 io.Writer 对象之上提供缓冲功能,从而减少系统调用次数,以提高 I/O 性能。
go 库学习之 io
Go 标准库的 io 包定义了 Go 语言基本的 I/O 模型,它提供了各种与 I/O 相关的接口类型,同时也提供了一些工具类型和函数,以提供一些扩展功能。
go 库学习之 netip
在编写网络相关的程序代码时,我们经常需要处理 IP 地址。当同时需要对 IPv4/IPv6 双栈网络支持时,如何简洁、优雅地表示 IP 地址也是需要些技巧的。
这篇文章将分析 Go 库的 net/netip
包,学习 Go 标准库如何表示和处理 IP 地址/网段。
go 库学习之 errors
Go 采用的是基于 错误值比较
的错误处理机制,即通过检查返回的 error 值来判断函数/方法是否执行成功,如果执行失败,也是通过该 error 值来携带具体的错误信息。相比于其他编程语言的 异常
错误处理机制,这种 值比较
机制更加简单,它要求在程序控制流程中显式关注和处理每个错误,这样的代码往往可读性更好,也符合 Go 追求简答的设计哲学。
标准库的 errors 包为 Go 的错误处理机制提供了基础支持,这篇文章将学习 errors 包的基本用法和原理。
go 库学习之 bytes
Go 标准库中的 bytes 包提供了一系列工具来实现对 字节切片
([]byte)的操作。bytes 包和 string 包提供了类似的工具类 API,只不过 bytes 包操作的字节切片,而 strings 包操作的是字符串类型。
这篇文章将学习 bytes 包的基本使用方法。