Go语言:并发编程与后端服务开发

用Go编写接口、处理并发任务,既要熟悉语法,也要理解协程之间如何协作。这里结合后端开发实例,讲解通道通信、错误处理与测试,让服务从运行到维护都有章可循。

阅读254
发布人iPython
发布时间2026-09-24
相关标签:
Go语言:并发编程与后端服务开发

Golang 中 json.Marshal omitempty 标签的作用与陷阱

本文详细解析 Golang 标准库 encoding/json 中 omitempty 标签的行为。通过代码验证发现,当结构体字段为默认零值(如 uint8=0、int=0、string="")或指针为 nil 时会被忽略;但固定长度数组即使全为零也不会被 omit。掌握此差异有助于避免 API 返回数据冗余及理解 Go JSON 编码的底层逻辑。

Golang 中 json.Marshal omitempty 标签的作用与陷阱

Go语言嵌入类型:机制、方法集与重写详解

本文深入解析Go语言的嵌入类型(Embedding)机制,揭示其如何实现代码复用与方法自动提升。重点探讨内部类型对外部类型的接口实现贡献、接收者类型对方法集的影响,以及通过定义同名外部方法覆盖内部实现的原理。

Go语言嵌入类型:机制、方法集与重写详解

Go语言文件读写与创建实战:从基础操作到高效IO

本文深入解析Go语言中的文件操作,涵盖文件的创建、打开模式选择及权限设置。通过 os.OpenFile、bufio.Reader/Writer 以及 ioutil.WriteFile 等核心方法,演示了如何进行稳健的读写操作。文章提供了完整代码示例与 defer 资源释放规范,并指出 Go 1.16+ 中 io/ioutil 包的废弃问题,帮助开发者掌握正确的文件I/O最佳实践。

Go语言文件读写与创建实战:从基础操作到高效IO

Go语言利用栈结构实现中缀转后缀表达式计算器

本文介绍如何使用Go语言的栈结构实现一个支持四则运算的计算器。核心逻辑分为两步:首先将人读的中缀表达式转换为计算机处理的后缀表达式,然后遍历后缀表达式并利用栈计算最终结果。文中包含详细的算法解析及完整的Golang代码实现。

Go语言利用栈结构实现中缀转后缀表达式计算器

一文搞懂Go语言Context:原理、用法与实战示例

本文深入解析Go语言中context包的作用,涵盖其核心接口方法(Done、Err、Deadline、Value)及常用工厂函数(Background、WithCancel、WithTimeout等)。通过协程管理、请求超时控制和参数传递的完整代码示例,帮助开发者掌握如何优雅地终止goroutine并共享请求级数据。

一文搞懂Go语言Context:原理、用法与实战示例

Go语言接口:底层原理、方法集规则与多态实战详解

深入解析Go语言接口的核心机制,涵盖接口底层存储结构(iTable与数据指针)、值/指针接收者与方法集的对应规则,以及通过代码示例演示如何利用接口实现函数多态。掌握这些原理能有效解决类型赋值报错并提升代码设计能力。

Go语言接口:底层原理、方法集规则与多态实战详解

深入了解Golang的指针用法

深入解析Golang中指针的核心概念、结构体字段访问、值传递本质以及常见陷阱。文章涵盖slice/map等内置类型的指针特性,详述for range遍历时的变量地址复用问题、闭包捕获机制及引发的内存逃逸场景,帮助开发者编写更安全高效的代码。

深入了解Golang的指针用法

Go语言异常处理:Panic与Recover机制详解及实战

Go语言无传统Try-Catch,主要依靠panic-recover实现异常处理。文章详解panic终止流程触发defer、recover在defer中捕获并恢复执行的原理,通过数组越界示例演示基础用法,并提供基于函数式传参的统一ErrorHandler模板,提升代码健壮性。

Go语言指针运算:从变量到多级解引用详解

本文深入解析Go语言中指针的核心概念,详细演示取址符(&)和解引用符(*)的运算规则。通过变量a、指针b及二级指针c的赋值案例,清晰阐述从一级到多级指针的内存地址与值的变化逻辑,帮助开发者消除对复杂解引用的困惑。

Go语言指针运算:从变量到多级解引用详解

Golang架构设计:开闭原则实战与代码实现

本文通过Golang线上学习平台课程打折的具体场景,演示如何遵循开闭原则(OCP)进行架构设计。在不修改原有GolangCourse类的前提下,通过组合新结构体和定义折扣接口IDiscount,实现DiscountedGolangCourse的扩展。包含完整的ICourse、GolangCourse及测试用例代码解析。

使用 Golang 和 Excelize 高效创建与读取 Excel 文件

介绍利用 Go 语言结合 Excelize 库与反射机制实现 Excel 文件的高效读写。通过结构体 Tag 定义列属性,实现元数据到代码的映射;针对大规模数据导出提供流式写入 API 优化方案,并解决了大文件内存限制及枚举下拉框长度等常见问题。

使用 Golang 和 Excelize 高效创建与读取 Excel 文件

Go语言Slice删除元素的三种方式及性能对比

在Go开发中,切片(Slice)是常用数据结构,但删除元素涉及内存操作。本文通过Benchmark测试对比了三种常见的Slice删除方法:新建切片追加、复用底层数组切片以及原地覆盖移动。结果显示,在不考虑数据完整性的前提下,原地覆盖效率最高且无内存分配;而保留原数据的做法会导致额外开销。根据是否需保留原始数据,开发者可选择最合适的方式以优化应用性能。