大家好,我是煎鱼。上一篇我在《如何对错误进行编程?》给大家分享了 Go 创始人对 Go 谚语之一 Errors are values 的诠释。本篇仍然是错误专场,是 Go 谚语中的 Don't just check errors, handle them gracefully,原文章同名,作者是 @Dave Cheney。以下的 “我” 均指代原作者。这条谚语和 Errors are value 关联性很强...
大家好,我是煎鱼。在公司的不断发展中,一开始大多是大单体,改造慢了,一个仓库会有使用几十年的情况,仓库的规模基本是不断增大的过程。影响之一就是会应用程序打包后的体积越来越大,不知道被用哪里去了...今天要探讨的提案《proposal: language: lazy init imports to possibly import without side effects》,就...
大家好,我是煎鱼。今天给大家分享的一个提案,已经在 Go 社区讨论了整整 9 年(2013~2022),它与我们的日常编程密切相关。今天就由煎鱼和大家一起深入学习和了解提案《proposal: spec: allow constants of arbitrary data structure type》吧,看看有没有什么新的想法。背景我们先看看以下示例代码,如下: {代码...} ...
大家好,我是煎鱼。Go 语言的一大特色就是它的错误机制,因此基本上所有的错误处理提案或讨论我都会有所查看和学习,开拓不同的思考视野和解决方法。今天分享的是 @Cristo García 所提出的提案《Simple Error Handling for Go 2》,略有修改,和煎鱼一起学习和讨论吧!Go 必须仍然是 Go这一个提案的核心观点是 Go 必须仍...
大家好,我是煎鱼。习惯性对比,类比学习,是大家掌握新技能时会习惯性的关联操作。像 Go 这种比较有味道的编程语言,其有一个细节也是大家很好奇的。其实 Go 只支持后自增/自减,今天煎鱼和大家一起研究为什么。语法基本的 Go 自增,非常简单。直接见代码: {代码...} 输出结果: {代码...} 如果回答输出结果错了,建议...
大家好,我是煎鱼。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 是不带返回值命名的例子。如下: {代码...} 这是日常工作中最常见的,前两年年我听到...