静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
在Go语言的世界里,“静态编译”一直是其标志性优势之一,将所有依赖打包成单一可执行文件,部署简单、运行可靠。但在某些场景下,我们需要程序具备动态扩展能力:比如无...
在日常开发中,我们经常需要在多个goroutine之间安全地共享数据。面对这种需求,Go语言提供了多种解决方案,其中最常见的就是sync.Map和Mutex+m...
用过Go语言的同学大概率遇到过这样的场景:声明了一个指针变量没初始化(默认是nil),却能直接调用它的方法,程序不仅不崩溃,还能正常输出结果。
在日常开发中,目录和文件复制是一个常见需求。在 Go 1.23 之前,开发者通常需要借助第三方库来实现这一功能。在 Go 1.23 中,标准库引入了 os.Co...
在日常开发中,我们常常需要处理动态数据集合。Go语言提供了多种数据结构,其中container/list包实现的双向链表和内置的切片(slice)是最常用的两种...
在日常开发中,我们经常需要将数据序列化成二进制格式进行存储或传输。Go语言自带了一个名为gob的序列化工具,但很多人可能更熟悉JSON或Protobuf,甚至有...
“channel到底需不需要主动关闭?”这是很多Go开发者心中的疑问。根据我的多年开发的经验和理解,这篇文章和大家分享一下。
在Go语言中,字符串处理是我们日常开发中最常见的操作之一。这篇文章就来深入介绍一个在Go 1.18 中引入的非常实用但容易被忽视的函数:strings.Cut,...
长期以来,Java 开发者在面对高并发场景时,总有一种“英雄气短”的感觉。看着隔壁 Go 语言凭借轻量级的 goroutine 在云原生领域混得风生水起,我们只...
在三年内第二次,C# 被 TIOBE 指数评为“年度编程语言”。C# 之所以获得这一称号,是因为其排名较上一年上涨幅度最大。多年来,这门语言经历了根本性的变化。...
“我的服务崩了,日志只有一行:open config.yaml: no such file or directory…… 可是……哪个模块?谁在读这个文件?...
看起来很整洁?社区都这么写? 但今天我要说一句大实话:ok 是个坏名字——尤其当你在一个函数里用它超过一次时。
但如果你图省事,直接把数据库模型(比如 User)原样返回,那就像穿着睡衣去开董事会——功能是有了,但风险也来了!
“我写了个订单系统,结果 if/else 比订单还多……” —— 某位深夜加班的 Go 新手
“写 Go 不难,难的是写出像 Go 的 Go。” —— 某位深夜 debug 到怀疑人生的 Go 老兵
在 Go 世界里,nil 就像那个总在角落里默默站着、从不说话的朋友—— 你不知道它是“真的没有”,还是“还没来得及有”,还是“故意不想告诉你”。
一句话总结:想让数据流像溪水一样“按需流淌”?Iter.Seq 让你的 Go 代码既懒又高效!
Go 1.26 RC1 已经发布,这意味着它很快将会正式与大家见面。在 Go 1.26 的发布草案中,有一行小字特别引人注目:
数组是固定长度、同类型的元素序列,长度是数组类型的一部分,编译期确定,不可动态扩容。
做后端、做中台、做数据平台的同学,多少都被 Protocol Buffer“支配”过。