大家好,我是煎鱼。Goto 语句在社区的讨论中经常被人诟病,认为其破坏了结构化编程和程序的抽象,是有害的,可怕的。最早的观点来源于 1968 年,Edsger Dijkstra 写了一封信《Go To Statement Considered Harmful》,来表达其是有害的观念。如下图:不过,但是,其实...Go 支持了 goto 语句,很多人不理解,大喊 less is...
大家好,我是煎鱼。最近在看 Go 的一些历史提案时,发现有个别很神奇的提案,已经提出来了许多年,但在如今依然没有关闭,并且不断地有人在讨论,但又解决不了。有种 “很气又干不掉我的样子”,今天就由煎鱼带大家一起来看看是什么。背景今天本文介绍的 Go 提案《proposal: spec: various changes to :=》是经典中的经典...
大家好,我是煎鱼。在用 Go 编程时,总会遇到各种奇奇怪怪的错误,国内外已经有许多小伙伴总结过(参考链接见参考),感觉都能凑一桌了。之前一直想写,想着五一假期肝一肝。今天给大家分享 Go 里常见的编码错误(一),希望对大家有所帮助。Go 常见错误1. nil Map问题在程序中声明(定义)了一个 map,然后直接写入数据...
大家好,我是煎鱼。在前两周我们在这篇《你能答对这道 Go 题目吗?超过 80% 的人都答错了...》文章中,针对题目,有小伙伴提出了如下问题:为此,今天我们就来了解一下 Go 函数的返回值命名的意义是什么?案例函数 a 带返回值,函数 b 是不带返回值命名的例子。如下: {代码...} 这是日常工作中最常见的,前两年年我听到...
大家好,我是煎鱼。我有一个朋友,近几年听说各种博弈、各种国内云产品等发力,各企业的 “国产化” 被提到了台面上,明确要去做这类事情。作为当代编程语言风口的 Go 语言,在宣传时,常常会说是 Google 背书:那么问题来了!假设出了一些冲突,Go 语言是否会被 Google 完全控制,形成垄断呢?今天煎鱼就和大家一起来了解...
大家好,我是煎鱼。我有一个朋友,,开开心心入职,想着施展拳脚,第一个任务就是对老旧的二进制文件进行研究。他一看,这文件,不知道是编译器用什么参数怎么打出来的,环境不知道是什么,更不知道来自什么代码分支?这除了是项目流程上的问题外,Go 在这块也有类似的小问题,处理起来比较麻烦。背景日常中很难从 Go 二...
大家好,我是煎鱼。大家平时都是在用 Go 语言,那以往已经有了 C、C++、Java、PHP。Google 的大佬们为什么还要再开发一门新的语言呢?难不成是造轮子,其他语言不香吗?背景Go 编程语言构思于 2007 年底,构思的目的是:为了解决在 Google 开发软件基础设施时遇到的一些问题。图上三位是 Go 语言最初的设计者,功力都非...
大家好,我是煎鱼。很多小伙伴学习 Go 语言的语法时,可能只是轻轻地看到过这个问题,结果一旦上手,多多少少一个组内总会碰到过几次。甚至会发现有一定年限的程序员也会遇到。有小伙伴疑惑了,这么折腾,为什么 Go 不直接在语言层面就支持 map 并发,那得有多香?为什么原生不支持凭什么 Go 官方还不支持,难不成太复杂...