



【go语言】接口 interface
接口是一组方法签名的集合。Go 语言的接口是隐式实现的:一个类型只要实现了接口中的所有方法,就自动满足这个接口,不需要显式声明。1. 接口的定义与实现type Animal interface { Speak() stri...
【go语言】defer 延迟执行
defer 关键字将其后的语句推迟到所在函数返回之前执行,常用于资源释放:关闭文件、解锁、关闭连接等。1. 基本用法func readFile(path string) { f, err := os.Open(path) if err != nil { retu...
【go语言】方法与接收者
Go 语言没有类,但可以把函数绑定到某个类型上,这样的函数称为方法。方法的本质是带接收者的函数,接收者写在 func 和方法名之间。1. 值接收者与指针接收者type Person struct { name string a...
【go语言】循环控制语句 break、continue、goto
循环控制语句用于在循环执行过程中改变流程:break 终止循环,continue 跳过本次循环,goto 直接跳转到指定标签。本章基于 for 循环讲解它们的使用。1. breakbreak 用于终止整个循环体。当 brea...
【.NET】System.Text.Json 源生成器:启动快、分配少的序列化
前言 System.Text.Json 从 .NET 6 开始提供源生成器(source generation)模式:编译时生成序列化代码,运行时不再做反射。对启动时间敏感的 CLI 工具、AOT 编译应用和高吞吐 API 服务都有明显...
【.NET】ThreadPool 与异步编程:线程池饥饿的排查和预防
前言 异步编程在 .NET 里已经普及多年,但「接口偶发变慢、CPU 不高、线程数却持续上涨」这类问题依然常见,十有八九和线程池饥饿有关。本文把线程池的工作方式、饥饿的成因、常见的阻塞代码模...
【.NET】IMemoryCache 进阶:过期策略、缓存击穿与内存上限
前言 进程内缓存是每个后端项目迟早要面对的问题:热数据重复查库、配置项频繁读取、外部接口结果短期复用,都可以用内存缓存解决。.NET 自带的 IMemoryCache 开箱即用,但缓存击穿、过期策略和...
【.NET】Span和Memory:高性能代码的基础知识
前言 写业务代码时,大部分性能问题出在数据库、网络和序列化上,字符串和数组的分配通常不值得优化。但在解析协议、处理文件、写通用库和热路径接口时,每一次多余的分配都会变成 GC 压力。Spa...








