在 Go 中如何使用 go:embed 指令嵌入静态文件

2024-07-16
阅读 18 分钟
4.1k
有时候,将配置文件、模板甚至整个前端应用直接嵌入到 Go 二进制文件中,是一种提高应用部署效率和简化操作的有效方法。自从 Go 1.16 版本起,Go 语言官方引入了 //go:embed 指令,这使得嵌入静态资源变得异常简单而直接。本文将详细介绍如何在你的 Go 应用中使用这一强大的特性。
封面图

Go 语言中的结构体内存对齐你了解吗?

2024-07-09
阅读 26 分钟
696
这是一篇填坑文章,我在《Go 中空结构体惯用法,我帮你总结全了!》一文中提到了 Go 中空结构体对内存对齐的影响,并承诺近期会写一篇关于 Go 结构体内存对齐的文章。本文就来详述一下在 Go 中什么是结构体内存对齐,以及内存对齐规则是什么。
封面图

在 Go 中如何检查结构体是否为空

2024-06-28
阅读 2 分钟
1.2k
本文概述了几种在 Go 中判断结构体是否为空的方法,适用于具有可比较字段和不可比较字段的结构体。Go 中的空结构体是指所有字段均设置为对应字段零值的结构体。
封面图

万字解析 Go 官方结构化日志包 slog

2024-06-26
阅读 34 分钟
3.7k
slog 日志包是 Go 语言中的一个结构化日志库,旨在提供一个简单而强大的日志系统。因为标准日志库 log 过于简陋,社区中经常有人吐槽,Go 官方也承认了这一点,于是 Go 团队成员 Jonathan Amsterdam 操刀设计了新的日志库 slog,其放在 log/slog 目录中。
封面图

在 Go 中如何让结构体不可比较?

2024-06-18
阅读 4 分钟
850
最近我在使用 Go 官方出品的结构化日志包 slog 时,看到 slog.Value 源码中有一个比较好玩的小 Tips,可以限制两个结构体之间的相等性比较,本文就来跟大家分享下。
封面图