首页
学习
活动
专区
圈层
工具
发布

#go

静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言

Go 语言生产环境必备包清单

GoLang学习记

在 Go 生态中选择合适的第三方包是生产开发的关键挑战。根据 2025 Go 开发者调查,26% 的开发者认为"找到可靠的 Go 模块和包"是最大难题之一。本文...

5210

Go + Kafka实战指南!

GoLang学习记

Apache Kafka 是 LinkedIn 在 2011 年开发的分布式流处理平台。想象它是一个超高速的邮局系统:

8210

字节面试:str := “Go 测试“`,如果直接 `str[:3]` 会发生什么

GoLang学习记

面试官:str := "Go 测试",如果直接 str[:3] 会发生什么? 候选人:得到 "Go 测"? 面试官:❌ 错,是乱码。

5710

为什么 Go 字符串永远不会为 nil?

GoLang学习记

背后藏着 Go 语言三位创始人——Rob Pike、Ken Thompson、Robert Griesemer 对编程语言最核心的理解:

7110

Go语言中到底应不应该将0值作为有效值?

技术圈

在Go语言的世界里,零值(Zero Value)是一个基础而重要的概念。当我们声明一个变量但没有初始化时,Go会自动为其赋予零值:数值类型为0,布尔类型为fal...

7810

大公司有DBA,Go开发者小团队靠什么管理数据库变更?

技术圈

在项目开发中,你是否遇到过这样的困扰:团队成员各自修改数据库结构,导致本地与生产环境不一致?或因忘记执行某个SQL脚本,线上系统突然报错?数据库迁移工具正是为解...

9710

Go 语言被忽视的神器:go clean 能解决什么问题?

技术圈

你的 Go 项目是否也堆积了各种编译产物?构建缓存是否越来越大?每个 Go 开发者都熟悉 go build、go run、go test,但有一个命令却常常被我...

7810

Go 语言中条件编译的最佳实践

技术圈

在跨平台开发中,如何让同一套代码同时支持 Linux、Windows、macOS 等不同操作系统?Go 语言提供了一套简洁而强大的条件编译机制,让开发者能够优雅...

7810

Go map面试必看:日期格式化输错一个数字会怎样?

技术圈

在 Go 语言中,时间格式化只要输错一个数字,输出可能完全失控。今天我们来实测:当你在时间格式中传入错误的数字时,会发生什么?

6810

Go语言int类型那么多,到底该用int还是int64?

技术圈

在Go语言开发中,我们经常会遇到一个问题:整型类型那么多,int、int8、int16、int32、int64,还有对应的无符号版本,到底该怎么选?特别是int...

7110

Go map面试必看:访问不存在的key会怎样?

技术圈

需要注意的是,Go内置的map不是并发安全的。如果多个goroutine同时读写同一个map,程序会panic。在并发场景下,推荐使用sync.Map:

7610

Go语言中错误包装的最佳实践

技术圈

在Go语言的开发过程中,错误处理是一个无法回避的话题。传统的错误处理方式往往让我们在排查问题时感到困惑:错误信息不够清晰,无法追溯错误的根源。Go 1.13版本...

7710

Go代码格式化该用gofmt还是goimports?

技术圈

简单来说,goimports是gofmt的超集。gofmt负责格式化代码(缩进、括号位置等),会对同一个import块内的包按字母排序;而goimports在此...

5310

从 for i := 0 到 range n:Go 循环语法的进化指南

技术圈

在日常开发中,我们经常需要执行固定次数的循环操作。比如初始化一个切片、并发启动多个 goroutine、或者简单地重复某个操作 N 次。在 Go 1.22 之前...

2710

Go 代码的进化美学:wg.Go() 方法让你少写一个 BUG

技术圈

在 Go 语言的并发编程中,sync.WaitGroup 无疑是最常用的同步原语之一。从 Go 1.0 开始,它就陪伴着我们处理各种 goroutine 同步场...

9010

Go 三元运算符的替代者:cmp.Or 让你的代码更优雅

技术圈

在 Go 语言的日常开发中,我们经常需要处理这样一个场景:当某个值为零值(空字符串、0、nil 等)时,使用一个默认值来替代。传统的做法是使用三元运算符的 Go...

9310

Go 代码的进化美学:strings.Clone / bytes.Clone

技术圈

使用 Clone 会有轻微的内存分配开销,但在需要释放原内存的场景下,总体内存占用反而更低,GC 压力更小,长期运行性能更优。推荐在从大字符串/切片中提取小部分...

7410

Go 语言中需要 Async/Await 吗?用 Channel 实现优雅异步编程

技术圈

在现代编程语言中,Async/Await 模式几乎成为了异步编程的标配。从 JavaScript 到 Python,从 C# 到 Rust,开发者们已经习惯了这...

5910

Go 代码的进化美学:errors.Is 和 errors.As

技术圈

如果让你评选 Go 语言最令人头疼的特性,错误处理一定榜上有名。曾几何时,我们面对层层嵌套的错误,只能无奈地写下 if err != nil;曾几何时,我们在错...

8610

Go 代码的进化美学:errors.AsType 错误处理新范式

技术圈

在 Go 语言的错误处理演进史上,每一个新特性的引入都让代码变得更加简洁和优雅。从 errors.As 和 errors.Is,到如今的 Go 1.26,标准库...

7110
领券