大家好,我是煎鱼。最近因为各种奇怪的原因,接触到了 Go 特色之一 CGO。这方面的相关内容也相对少一些,给大家抛砖引玉。毕竟很多跨语言调用,还是会依赖 CGO 这个特性。希望大家在真正要用时有个前置知识垫肚子。CGO 是什么CGO 就是 C 和 Go,两个编程语言。指的是能够创建调用 C 代码的 Go 包。对照着 Go 代码中的 “C...
大家好,我是煎鱼。之前我写过一篇《Go 工具链想主动上报使用数据,你愿意吗?》文章分享。核心描述的是以下这件事。Go 核心团队负责人 Russ Cox(下称 rsc)想要抽样采集用户的使用数据、性能信息等,便于 Go 团队更好的开发和调研。文章的投票结果:Go 遥测开还是不开近日 Go 团队已经在《Opting In to Transparent Te...
大家好,我是煎鱼。之前每次写 Go 错误处理的相关提案时,大家都会在评论区探讨到一个事。Go 这活不得劲,常被戏称,一个大型 Go 工程项目里 60% 的代码都是 if err != nil。咱们错误处理怎么不借鉴一下 Rust,高低也整个问号的语法特性,就可以简化这三行了,不香吗?借鉴 Rust 用 ?!| 符号核心的点是在现有的 Go 例...
大家好,我是煎鱼。Go 语言已经开源 10+ 年,从高的关注度,再到云原生时代引爆学习 Go 的浪潮,再到现在的数年后。其搜索热度和 TIOBE 排名基本维持如下:最新的排名第是第 11 名。以往我在网上常常看到大家讨论的 Go vs Java,大家基本都是从技术的角度分析,对比两者的各类成本、特性,孰强孰弱。技术角度上决定如何...
大家好,我是煎鱼。前段时间我们在写 Go1.20 新特性和变更时,发现了一个问题有悖论。Go1 有兼容性承诺,但如果发现了 BUG,会破坏兼容性。那怎么办?是大胆修改,破坏掉,还是说设计如此,打死不改?写了个开头结果阳了,现在阳半康回来更。Go1 兼容性保障在 Go1 引入了 Go 兼容性保障《Go 1 and the Future of Go Prog...
大家好,我是煎鱼。相信关注我的许多同学都有接触 Go 语言的开发,甚至在企业中多有实践。那么你在日常开发中,势必会接触到 gorilla 组织下的各个 Go 开源项目。如下图:gorilla/mux:Star:17.9k。a powerful request router for web applications。gorilla/websocket:Star:18.6k。a standards-compliant and widely...
大家好,我是煎鱼。不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics 。著名的硬核大佬 Russ Cox 表示他一直在研究这个问题,并表示十年的经验表明了当前语义的代价是很大的。问题案例一:取地址符在 Go 语言中,我们写 for 语句时有时会出现...