大家好,我是煎鱼。我有一个朋友,近几年听说各种博弈、各种国内云产品等发力,各企业的 “国产化” 被提到了台面上,明确要去做这类事情。作为当代编程语言风口的 Go 语言,在宣传时,常常会说是 Google 背书:那么问题来了!假设出了一些冲突,Go 语言是否会被 Google 完全控制,形成垄断呢?今天煎鱼就和大家一起来了解...
大家好,我是煎鱼。我有一个朋友,,开开心心入职,想着施展拳脚,第一个任务就是对老旧的二进制文件进行研究。他一看,这文件,不知道是编译器用什么参数怎么打出来的,环境不知道是什么,更不知道来自什么代码分支?这除了是项目流程上的问题外,Go 在这块也有类似的小问题,处理起来比较麻烦。背景日常中很难从 Go 二...
大家好,我是煎鱼。大家平时都是在用 Go 语言,那以往已经有了 C、C++、Java、PHP。Google 的大佬们为什么还要再开发一门新的语言呢?难不成是造轮子,其他语言不香吗?背景Go 编程语言构思于 2007 年底,构思的目的是:为了解决在 Google 开发软件基础设施时遇到的一些问题。图上三位是 Go 语言最初的设计者,功力都非...
大家好,我是煎鱼。很多小伙伴学习 Go 语言的语法时,可能只是轻轻地看到过这个问题,结果一旦上手,多多少少一个组内总会碰到过几次。甚至会发现有一定年限的程序员也会遇到。有小伙伴疑惑了,这么折腾,为什么 Go 不直接在语言层面就支持 map 并发,那得有多香?为什么原生不支持凭什么 Go 官方还不支持,难不成太复杂...
大家好,我是煎鱼。程序里的锁,是很多小伙伴在写分布式应用时用的最多的一个利器之一。使用 Go 的同学里,绝大部分都有其他语言的经验,就会对其中一点有疑惑,那就是 Go 里的锁,竟然不支持可重入?为此,今天煎鱼带大家一起来了解这里的设计考量,看看为什么。可重入锁如果对已经上锁的普通互斥锁进行 “加锁” 操作,...
大家好,我是煎鱼。前面写过好几篇 Go 泛型的语法、案例介绍,新的一手 Go 消息。实际上,随着一些提案被接受,新的提案也逐渐冒出。这不,我发现有了泛型后,大家可以更进一步玩出花来了。看到了一个 ”新“ 提案《proposal: spec: generics: type switch on parametric types》,讲的就是增加泛型后的参数类型上的类型开...
大家好,我是煎鱼。这是一个很多其他语言工程师转 Go 语言的时间节点,这就难免不论一番比较。其中一个经典的运算上的就是 “三元运算符”:为什么 Go 语言不支持三元运算符,Go 不支持三元运算符就是设计的不好,是历史在开倒车吗?今天就由煎鱼来和大家一起摸索为什么。三元运算符是什么三元运算符,在典型的数学意义上...
大家好,我是煎鱼。前几天在咱们的 Go 交流群里,有一个小伙伴问了 “xxx 是不是引用类型?” 这个问题,引发了将近 5 小时的讨论:兜兜转转回到了日经的问题,几乎每个月都要有人因此吵一架。就是 Go 语言到底是传值(值传递),还是传引用(引用传递)?Go 官方的定义本部分引用 Go 官方 FAQ 的 “When are function para...
大家好,我是煎鱼。在 Go 语言中,有一个比较特殊的类型,经常会有刚接触 Go 的小伙伴问到,又或是不理解。他就是 Go 里的空结构体(struct)的使用,常常会有看到有人使用: {代码...} 还清一色的使用结构体,也不用其他类型。高度常见,也就不是一个偶发现象了,肯定是背后必然有什么原因。今天煎鱼这篇文章带大家了解...
大家好,我是煎鱼。在大家初识 Go 语言时,总会拿其他语言的基本特性来类比 Go 语言,说白了就是老知识和新知识产生关联,实现更高的学习效率。最常见的类比,就是 “Go 语言如何实现面向对象?”,进一步展开就是 Go 语言如何实现面向对象特性中的继承。这不仅在学习中才用到类比,在业内的 Go 面试中也有非常多的面试官...