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

#go

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

分享自己常用的 Go 技术栈:不炫技,但稳得一批!

GoLang学习记

听起来很极客,但现实是—— 你写个配置管理要手动解析 YAML + 环境变量 + 命令行参数? 你写个 CLI 工具要手搓 flag 解析和子命令? 你写...

9410

Go 日期格式化其实挺香的,别再骂它“反人类”了!

GoLang学习记

这个时间点恰好包含了所有日期/时间字段的“最小完整表示”,而且每个部分都独一无二,不会混淆。

7210

Go 里什么时候可以“panic”?

GoLang学习记

“Don’t panic.” —— Go 谚语 但……如果我真的想 panic 呢?

8010

JSON vs Protocol Buffers vs FlatBuffers:谁才是高性能序列化的“卷王”?

GoLang学习记

但天下没有免费的午餐。JSON 的“可读性”恰恰是它的性能软肋——每次接收数据,都得先 parse 成结构体,这个过程既耗 CPU 又费内存。

8410

Go strings.Cut:优雅的一次实践

GoLang学习记

以前要写 4 行代码才能安全切分字符串?现在一行就够了 —— 欢迎 strings.Cut 和 bytes.Cut!

7910

[特殊字符] Go 并发入门:Goroutines + Channels = 轻松多任务!

GoLang学习记

结果发现——用户还没加载完,邮件就发出去了? 或者更糟:整个程序卡死,像在等外卖却忘了点单?

6310

别让 Go 乱“复制”你的结构体!

GoLang学习记

想象一下,你正在组织一场多人派对(goroutine),需要一个“签到表”(WaitGroup)来确保所有人都到场了才开始切蛋糕。你把签到表交给朋友 A,结果他...

6210

告别手动重启!用 Air 给你的 Go 项目装上“自动刷新”外挂

GoLang学习记

如果你还在用 go run main.go 开发 Go 项目,那你可能还不知道:Go 社区早就有了“热重载神器”——Air!

8210

Go反射:性能瓶颈与零拷贝优化

Fgaoxing

做Go开发的,肯定少不了用反射——解析Tag、拿字段偏移、获取类型信息,ORM、序列化、配置绑定这些地方都要用到。

21640

Go 的语言设计天然不适合复杂业务系统抽象

JanYork_简昀

当你需要 Clean Architecture、DDD、Hexagonal、AOP、IoC 这类方法论来治理复杂系统时,Go 的克制设计通常会让这些方法论更依赖...

10510

别再误会了!Go语言中的go.sum其实不是锁文件

技术圈

当你在GOMODULE模式下引入一个新的依赖时,Go工具链会下载依赖包并计算其哈希值。在更新go.sum之前,为了确保下载的依赖包是真实可靠的,go命令会查询G...

8310

Go语言中的//export:让你的Go函数被C调用!

技术圈

在日常开发中,我们有时会遇到这样的场景:需要用C语言调用Go语言编写的函数。这时,//export 指令就派上了用场。

9510

重新思考Go:写了十年代码后,Dave Cheney 保留的4个非常规习惯

萝卜要努力

作为软件工程师,我们都在努力编写整洁、可维护且易于测试的代码。我们遵循最佳实践,阅读软件设计书籍,并进行严格的代码审查。但如果我们一些根深蒂固的习惯实际上是隐蔽...

8110

Go 能同时提供 HTTP 和 WebSocket 服务吗?

技术圈

在实时应用开发中,我们常需要同时提供 HTTP 接口(用于常规请求)和 WebSocket 服务(用于实时双向通信)。那 Go 语言能否高效兼顾这两者?答案是:...

7610

深入浅出:Go语言中的unsafe.Pointer与uintptr

技术圈

在日常的Go语言开发中,我们大多数时候都在与类型安全的代码打交道。但当你需要与底层系统交互、进行高性能优化或处理特殊场景时,就不得不接触Go语言中的"禁区"——...

7610

如何写好 Go 项目中的 Makefile ?

技术圈

在日常的Go项目开发中,你是否经常遇到这样的场景:反复输入一长串go build命令,需要记住复杂的编译参数,或者团队中不同成员使用的构建命令不一致?这些痛点都...

7710

Go语言中结构体和结构体指针调用有什么区别?

技术圈

在日常Go开发中,我们经常面临这样的选择:到底该使用结构体还是结构体指针?这篇文章就来聊聊这个话题,帮助大家彻底理解它们的区别和使用场景。

11510

面试题:Go语言中,一个协程能干掉另一个协程吗?

技术圈

在日常使用Go语言进行开发时,我们经常会使用goroutine来实现并发操作。但很多开发者可能会思考一个问题:我能否在一个goroutine中直接终止另一个go...

8010

在 Go 语言中字符串 len 为0 和字符串为空,该用哪个更好?

技术圈

在日常的Go语言开发中,判断字符串是否为空是最常见的操作之一。你会发现代码中主要有两种写法:len(s) == 0 和 s == ""。你是否和我有同样的困惑,...

7710

Go语言中的//go:到底是什么?

技术圈

在日常阅读Go语言源码时,我们经常会看到各种以//go:开头的特殊注释。这些看似普通的注释,实际上是Go编译器提供的一组强大工具,它们可以直接影响编译过程,优化...

8210
领券