静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
Go 1.26 RC1 已经发布,这意味着它很快将会正式与大家见面。在 Go 1.26 的发布草案中,有一行小字特别引人注目:
数组是固定长度、同类型的元素序列,长度是数组类型的一部分,编译期确定,不可动态扩容。
做后端、做中台、做数据平台的同学,多少都被 Protocol Buffer“支配”过。
泛型是Go语言近年来最重要的特性之一,但是,很多开发者在使用泛型时,可能会对其中的某些语法感到困惑。特别是~int这样的写法,常常让人摸不着头脑。究竟这个波浪线...
在游戏开发中,我们经常需要处理各种状态切换:比如从主菜单到游戏进行,从游戏进行到暂停,再到游戏结束。这些状态转换如果管理不当,代码很容易变得混乱不堪。我用Go做...
在Go语言中,自增(++)和自减(--)操作符的使用与其他类C语言(如C或Java)有显著区别。其核心特点在于,它们被设计为独立的语句,而非表达式。
提及Go语言,大众多关联后端、云原生与并发编程,但其GUI开发潜力正逐步释放。依托编译快、内存低、并发优的特性,Go在跨平台与轻量化GUI需求下崭露头角。
在日常的Go语言开发中,字符串比较是最常见的操作之一。面对多种比较方法,你是否曾好奇过它们背后的实现原理?和我一样,我也很好奇,于是我就搜索了很多资料,在这篇文...
现年 69 岁的传奇程序员、「Go 语言之父」Rob Pike,这几天被一封邮件惹毛了,接连几个「F**k」爆起粗口。
在当今Web开发领域,前后端分离架构确实成为主流,React、Vue等前端框架大放异彩。很多人不禁疑问:Go语言内置的模板引擎还有用武之地吗?有人认为它已经过时...
在高并发Go服务开发中,流量控制是保障系统稳定性的核心手段。无论是应对突发的流量洪峰,还是限制对下游服务的访问频率,限流都扮演着“安全阀门”的关键角色。
轮询时遍历case检查通道就绪状态,多就绪则随机选一个避免饥饿;无就绪case时,goroutine释放CPU并注册到通道等待队列;通道状态变化时,唤醒阻塞go...
在Go语言高并发开发领域,互斥锁(sync.Mutex)是解决资源竞争的基础工具,但在百万级 QPS 的微服务场景中,频繁的加锁解锁会引发上下文切换与锁竞争,成...
在日常开发中,我们经常会遇到这样的场景:线上服务需要修复紧急bug或上线新功能,但又不希望重启服务影响用户体验。特别是在内存型高并发的项目,几分钟的停机可能意味...
Go语言有一个强大的文档工具godoc,它能够从源代码中提取注释并生成漂亮的文档。godoc被设计为优先解析//注释,特别是当注释出现在声明之前时,它能准确地将...
目前社区主流的Go多版本管理工具主要有五种:goenv、gvm、g、asdf和goup。每款工具都有其独特的设计哲学和适用场景。下面我们将逐一深入分析。
官方在语言正式发布前,为了避免与已有的“Go”相关产品和服务混淆,在一些场合使用了“golang”来指代这门语言。官方网站golang.org的域名也强化了这一...
在日常开发中,我们经常需要遍历各种数据集合。Go语言提供了强大的for range循环来遍历切片、map等内置类型,那么对于自定义数据结构,我们是否真的需要迭代...
一直以来,Go语言社区长期存在关于语法简洁性与代码可读性的讨论,有一个备受争议的提案:是否应该为Go加入轻量级匿名函数语法(俗称“箭头函数”)。
作为一名Go语言开发者,你是否曾好奇过:当我们执行go build命令后,编译器究竟产生了什么?是机器码还是汇编代码?这个问题看似简单,却涉及Go语言编译器的深...