Golang


Go语言template模板语法完全指南

Golang text/template & html/template使用教程

Go语言template模板语法完全指南

在 Go 语言中,模板机制(text/templatehtml/template 包)提供了一种强大的、数据驱动的方式来生成文本或 HTML 输出。无论你是生成配置文件、邮件内容,还是构建 Web 应用程序的动态页面,理解 Go 模板都是必不可少的。

如果你正在生成 HTML 输出,强烈建议使用 html/template 包,因为它提供了与 text/template 相同的接口,但增加了自动上下文转义(auto-escaping)功能,以确保输出安全,抵御代码注入攻击(如 XSS)。

本文将详细介绍模板的核心语法、控制结构、数据访问和高级功能。

Go 语言配置管理:koanf 全面使用指南

Koanf:Go 应用程序中灵活高效的配置管理库教程

Go 语言配置管理:koanf 全面使用指南

koanf 是一个专门用于 Go 应用程序中从各种来源和格式读取配置的库。它被设计为流行的 spf13/viper 的一个更清晰、更轻量级的替代品,具有更好的抽象性、可扩展性以及显著更少的依赖项。koanf v2 通过模块化设计,将配置的 Provider(提供者)Parser(解析器) 解耦,使得配置管理更加灵活。

Go 模板利器:Sprig 模板函数使用说明书

Golang HTML Template FuncMaps

Go 模板利器:Sprig 模板函数使用说明书

Sprig 是一个为 Go 语言内置模板(text/templatehtml/template)提供超过 100 个常用模板函数的库。它的设计灵感来源于 Twig 和 JavaScript 库(如 underscore.js)中的模板函数。

Sprig 遵循的原则包括:使用模板函数进行格式化布局简单类型转换以及辅助处理常见格式化和布局需求的实用程序(例如算术运算)。所有函数通常以小写形式命名,以遵循 Go 模板惯例。

本指南整合了 Sprig 中提供的关键功能(genericMap 中的函数),方便大家查询和学习。

Golang log/slog 使用教程:结构化日志实战指南

Golang log/slog 使用教程:结构化日志实战指南

Go 语言的日志记录功能经历了漫长的发展。过去,开发者依赖简单的标准 log 包或功能强大的第三方库(如 zapzerolog)。随着 Go 1.21 中 log/slog 包的引入,Go 语言现在拥有了一个原生的、高性能的、结构化日志解决方案,旨在成为新的标准。

结构化日志 (Structured Logging) 的核心在于使用键值对(Key-Value Pairs)来记录日志,这使得日志可以被机器解析、过滤、搜索和可靠地分析。这对于观察系统的详细行为和调试问题至关重要。

slog 的设计将日志逻辑与其最终输出分离开来,提供了一个通用的 API,同时允许不同的日志实现来控制输出格式和目的地。

go-i18n 国际化多语言完整使用教程

一份面向工程的 go-i18n 指南

go-i18n 国际化多语言完整使用教程

本教程面向想在 Go 项目中使用 go-i18n 这个库来实现国际化(i18n)支持的开发者。覆盖从安装、消息抽取与翻译文件管理、运行时加载、Localizer 使用、复数规则、模板变量与自定义分隔符、内嵌文件(go:embed)、到进阶主题(hash、回退与调试)的完整工作流,并配有大量示例代码与 CLI 使用示例。

使用Caddy在VPS服务器上部署免费版HTTPS的后端服务(Golang为例)

在VPS上部署你的第一个后端网站:使用Caddy实现自动HTTPS、可扩展部署

新手刚拿到一台 Ubuntu 系统的 VPS,完成系统初始化后(参考: 新服务器初始化教程 ),通常会面临下一个问题:

“我开发好的 Web 程序,怎么部署到服务器上?怎么用自己的域名访问它?还能自动支持 HTTPS 吗?”

这篇文章将以实际案例为例,教你如何使用 Caddy 来部署你的 Go Web 后端服务。支持自动 HTTPS、安全、简单、可拓展,让你快速上线项目,未来部署更多服务也不成问题。

对于已经完成服务器初始化的新手开发者来说,下一步通常就是上线你的第一个项目。你可能已经完成了自己的 Golang Web 服务编译,现在你需要的是一个 安全、稳定、自动续签 HTTPS 证书、支持多站点扩展 的生产环境部署方案。

本教程将以 Caddy + Systemd + Golang 服务 为核心,教你如何构建生产可用的网站服务环境。

go env 命令详解:Golang环境变量配置与管理

Go 编程语言以其简洁性和高效性著称,特别是在开发 Web 服务、并发程序以及大规模应用时。然而,在使用 Go 进行开发的过程中,配置和环境管理往往是不可避免的部分。本文将详细介绍 Go 的 env 命令及其在 Go 开发中的重要作用,帮助你更好地理解如何使用它来管理 Go 环境变量以及优化你的开发流程。

Stringer: Go 语言的字符串生成工具

Golang stringer 命令行工具详解

本文将介绍 Golang 中的 stringer 工具,它可以帮助你自动生成 String() 方法,从而使代码更易于维护和理解。我们将从 Stringer 接口的基本用法入手,展示如何自定义类型的字符串表示,然后介绍 stringer 命令行工具,包括安装、使用方法和一些高级技巧。

Go 语言泛型用法详解

Go 语言自 1.18 版本起支持 泛型(Generics),这让 Go 代码可以更加通用,减少重复代码,提高开发效率。Go 1.24 进一步增强了泛型支持,引入了 泛型类型别名,让代码更简洁。

本文将带你从零开始,理解 Go 泛型的概念、语法、使用方式,并配有示例代码,帮助你快速上手。

Go 1.24 新特性一览

Go 1.24 版本于 2025 年 2 月发布,带来了多项改进和新功能,主要集中在工具链、运行时和标准库的实现上。此版本保持了 Go 1 的兼容性承诺,确保绝大多数 Go 程序能够继续编译和运行。

Go版本管理神器GVM使用教程:高效管理Go语言多版本开发环境

Go 语言(Golang)因其高效、并发友好的特性受到广泛欢迎,但 Go 的版本管理一直是开发者头疼的问题。尤其是在多个项目需要不同版本的 Go,或者 Go 版本升级时,手动管理 GOROOT 和 GOPATH 是一件麻烦事。幸运的是,我们可以使用 GVM(Go Version Manager)来轻松管理 Go 版本。本篇文章将详细介绍 GVM 的安装、使用方法,帮助你快速上手。

如何构建稳健的API鉴权与计费系统:Golang全流程实战

如何构建稳健的API鉴权与计费系统:Golang全流程实战

在 Web 开发中,API 是连接前端与后端、不同服务之间通信的桥梁。特别是对于一些提供 API 服务的在线平台,开放 API 以支持第三方开发者接入成为一种趋势。然而,在实现收费 API 服务时,安全性、性能以及易用性等问题往往让开发者头疼。本篇文章将详细介绍如何使用 Golang 设计和开发一个安全高效的 API 系统,在设计和开发 API 系统的过程中,许多开发者可能会想了解类似于 “Golang 实现 API 鉴权”、“如何防止 API 被破解”、“Golang API 签名验证”、“API 计费系统设计”等问题。因此,本文将着重解决这些问题,带您深入理解如何在 Golang 中实现这些功能,并分享一些实践中的技巧和示例代码。