大家好,我是煎鱼。不知道有多少 Go 的面试题和泄露,都和 for 循环有关。今天我在周末认真一看,发现了 redefining for loop variable semantics 。著名的硬核大佬 Russ Cox 表示他一直在研究这个问题,并表示十年的经验表明了当前语义的代价是很大的。问题案例一:取地址符在 Go 语言中,我们写 for 语句时有时会出现...
大家好,我是煎鱼。上一篇我在《如何对错误进行编程?》给大家分享了 Go 创始人对 Go 谚语之一 Errors are values 的诠释。本篇仍然是错误专场,是 Go 谚语中的 Don't just check errors, handle them gracefully,原文章同名,作者是 @Dave Cheney。以下的 “我” 均指代原作者。这条谚语和 Errors are value 关联性很强...
大家好,我是煎鱼。在前两周我们在这篇《你能答对这道 Go 题目吗?超过 80% 的人都答错了...》文章中,针对题目,有小伙伴提出了如下问题:为此,今天我们就来了解一下 Go 函数的返回值命名的意义是什么?案例函数 a 带返回值,函数 b 是不带返回值命名的例子。如下: {代码...} 这是日常工作中最常见的,前两年年我听到...
大家好,我是煎鱼。我有一个朋友,近几年听说各种博弈、各种国内云产品等发力,各企业的 “国产化” 被提到了台面上,明确要去做这类事情。作为当代编程语言风口的 Go 语言,在宣传时,常常会说是 Google 背书:那么问题来了!假设出了一些冲突,Go 语言是否会被 Google 完全控制,形成垄断呢?今天煎鱼就和大家一起来了解...
大家好,我是煎鱼。很多小伙伴学习 Go 语言的语法时,可能只是轻轻地看到过这个问题,结果一旦上手,多多少少一个组内总会碰到过几次。甚至会发现有一定年限的程序员也会遇到。有小伙伴疑惑了,这么折腾,为什么 Go 不直接在语言层面就支持 map 并发,那得有多香?为什么原生不支持凭什么 Go 官方还不支持,难不成太复杂...
大家好,我是煎鱼。程序里的锁,是很多小伙伴在写分布式应用时用的最多的一个利器之一。使用 Go 的同学里,绝大部分都有其他语言的经验,就会对其中一点有疑惑,那就是 Go 里的锁,竟然不支持可重入?为此,今天煎鱼带大家一起来了解这里的设计考量,看看为什么。可重入锁如果对已经上锁的普通互斥锁进行 “加锁” 操作,...
大家好,我是煎鱼。前面写过好几篇 Go 泛型的语法、案例介绍,新的一手 Go 消息。实际上,随着一些提案被接受,新的提案也逐渐冒出。这不,我发现有了泛型后,大家可以更进一步玩出花来了。看到了一个 ”新“ 提案《proposal: spec: generics: type switch on parametric types》,讲的就是增加泛型后的参数类型上的类型开...