如果 Go 语言加入箭头函数,你怎么看?
围绕“Go 是否该加入箭头函数”,社区争论的焦点并不只是语法长短,而是可读性、一致性和语言哲学的取舍。本文结合提案示例、反对理由与现有替代手段,梳理这场讨论真正影响开发体验的关键点。
围绕“Go 是否该加入箭头函数”,社区争论的焦点并不只是语法长短,而是可读性、一致性和语言哲学的取舍。本文结合提案示例、反对理由与现有替代手段,梳理这场讨论真正影响开发体验的关键点。

`go build` 最终拿到的不是汇编文本,而是能在目标平台直接运行的机器码。本文按 Go 编译链路拆开讲清楚词法分析、AST、SSA、Plan 9 汇编到链接成可执行文件的过程,并补充查看中间产物的常用方法。

本文按实际开发里的高频场景,重新梳理 Go 语言 `time` 包的核心用法:当前时间获取、时间戳互转、`Duration` 间隔计算,以及格式化与解析。重点保留示例代码和关键 API,并把容易混淆的模板规则、时区处理方式讲清楚,方便直接上手。

Go 没有专门的“编译时断言”关键字,但开发中依然可以借助常量、数组、接口赋值和 unsafe.Sizeof 等语言特性,把一部分错误拦在编译阶段。本文按常见问题拆解几种实用写法,并说明它们各自适合解决什么问题。

Go 协程和 Java 虚拟线程都在解决高并发下的线程成本问题,但两者的实现路径和适用环境并不相同。本文从模型、调度方式、开发体验和选型场景四个层面拆开比较,帮助你判断是优先看极致性能,还是看生态延续与迁移成本。

Go 方法接收者看起来只是 `T` 和 `*T` 的写法差别,实际会影响状态修改、复制成本、接口实现,甚至并发场景下的使用方式。本文把这些判断拆成几条可直接落地的规则,帮你在项目里更快选对值接收者或指针接收者。

把 Go 用在 Web 开发,争议点从来不只是“性能强不强”,而是项目是否真的需要它。本文从并发能力、部署维护、团队成本、生态成熟度和实际案例几个维度拆开分析,帮助你判断 Go 是过度投入,还是恰好适配业务场景。

`string(65)` 为什么打印出的是 `A`,而不是字符串 `65`?这道常见 Go 面试题考的并不是记忆,而是对字符、`rune`、字符串转换语义的理解。文章会拆开 `string(int)` 的真实含义,并给出把整数转成数字字符串的正确写法与排错提示。

Go 并不存在“按引用传参”这一独立机制,函数参数一律按值复制。真正容易让人误判的是切片、map、channel 这类值里本身带有底层数据的引用信息,以及指针参数带来的可修改效果。 很多刚接触 Go 的开发者,都会在“值传递”和“引用传递”上卡一会儿:为什么传入 int 改不动原值,传入 slice 却像是能改到外面?

Go 和 Java 并不是只能二选一。结合并发模型、启动性能、生态成熟度和业务复杂度来看,更实际的做法是按职责拆分:让 Go 承担高并发入口与轻量服务,让 Java 负责复杂业务与一致性要求高的核心系统。

Go 反射很灵活,但一旦落到高频路径上,类型解析、字段查找和临时对象分配都会迅速放大成本。本文围绕“为什么慢、该怎么改、不同场景怎么选”三件事展开,结合缓存、字段索引、批处理、代码生成和接口断言,梳理一套更适合实战的优化思路。

Go 的 `import cycle not allowed` 不只是编译报错,更是在提醒包结构已经出现反向耦合。本文从定位方法、五种常见解法到日常预防原则三部分展开,帮助你判断该合并包、抽接口、提公共层,还是改用依赖注入与函数传参。
