我无语了,Go 中 +-*/ 四个运算符竟然可以连着用

大家好,我是站长 polarisxu。 我计划把类似这样的文章归为:奇淫技巧,你认同吗? 看到 Go101(玩 twtter 的可以关注他) 发了一条消息,+-*/ 这四个竟然可以连着写: package main func main() { v := new(int) *v = 2 println(5/+-*v) } 我看到后,试着运行了一下,竟然输出了 -2 。。。我忍不住“卧槽”。。。 我不得不说,Go101 扣的真细节。 于是我尝试着找一些线索,看看为什么可以这样写。 01 直接看汇编 遇到一些不解的

Go周刊题解:切片的另类初始化 — 该题正确率出奇的低

大家好,我是站长 polarisxu。 我在 Go 语言爱好者周刊第 87 和 88 期 刊首出了两道题,这两道题有点类似,都是和切片初始化有关。但这两道的题正确率比较低,特别是 88 期的题。 第 87 期题目如下: package main import ( "fmt" ) func main() { a := []int{2: 1} fmt.Println(a) } 正确答案是:C,正确率 52%。这道题相对简单,但依然有近一半的人答错了。 第 88 期题目和 87 期类似,但难度高一些,题目如下: package main func main() { var x = []int{4: 44, 55, 66, 1: 77, 88} println(len(x),

GoLand 也可以远程开发了:试用报告

大家好,我是站长 polarisxu。 JetBrains 官方今天发了一篇文章:《使用 Projector 远程访问 IDE》 ,了解到 JetBrains 搞了一个远程开发 IDE。很多人知道 VSCode 可以进行远程开发,现在 JetBrains 系列 IDE 也支持了(自然 GoLand 也支持),于是安装试用了下,给大家做一个汇报。 01 Projector 是什么 Projector 是一种远程运行和访问 Swing GUI 应用程序的技术(Swing 是 Java 的 GUI API,JetBrains 系列 IDE 都是使用 Swing 绘制的 UI),目前 1.0 版本可

送 gRPC 书后续:自我反思和人性的思考

大家好,我是站长 polarisxu。 上周在公众号搞了一个送书活动 ,感谢大家的参与,留言数 170+,而微信公众号最多只能放出来 100 个留言,因此有些晚留言的,可能留言没放出来,下次再有活动,大家可以早点参与,我公众号发文时间一般是 18:12。 根据文中的相关规则,第二天就开奖了,中奖的用户一一留言回复了,他们的书也已经收到了。 不过陆续还有人问:这个开奖了吗?据说还有

阿里云盘公测随想:如何看待竞争

大家好,我是站长 polarisxu。 昨天(2021 年 3 月 22 日)阿里云盘公测,声称下载速度 50-100 M/s,网友测试,5G 下确实能达到。而且官方表示,“无论免费收费,未来都不限速”。 朋友圈有人发了这么一段话: 阿里云盘今天公测,下载速度 50-100 MB/s,官方表示:“无论免费收费,未来都不限速” 百度网盘目前用户数已超 7 亿,阿里云盘目前用户数不足千万 阿里云平台目前有 2800+ 的 CDN 节点,全

发现 go version 的一个另类用法:你肯定想不到

大家好,我是站长 polarisxu。 对于 go version,大家应该不陌生。在很多入门教程,安装 Go 后,一般会建议执行 go version 看看是否安装成功;亦或遇到问题,别人会问你 Go 哪个版本,你也会通过 go version 命令查看。所以,go version 的一个作用是查看本地使用的 Go 版本。 但实际上,go version 还有其他用途,甚至可以说,输出本地 Go 版本号只是它功能的一个特例。先 go help version 看看: $ go help version usage: go version [-m] [-v] [file ...] Version

map 和 switch 如何选?match 又是什么?

大家好,我是站长 polarisxu。 看到标题别惊讶,虽然 map 和 switch 似乎没啥关系,但有些场景它们俩都可以用。 场景一:根据不同的错误码显示对应错误消息,比如 200 -> 正常。 场景二:根据不同状态显示对应的文案。这个场景很常见,比如数据库保存状态,用的 tinyint 类型,显示给用户的是文本,所以需要进行转换。 具体怎么选?我们看一下代码,怎么选择应该一目了然。 const ( UnPay = iota HadPay Delivery Finish ) var orderState = map[int]string{ UnPay: &

优化Go应用性能就是在浪费时间?

原文标题:Writing slower Go programs。作者认为应该优化可读性,而不是优化性能。你认可吗?一起看下该文。本文不代表 Go语言中文网 的观点。 什么?写更慢的 Go 程序?难道我们不应该关注如何让 Go 程序更快吗? 实际不是的。为了性能而优化 Go 代码几乎肯定在浪费你的时间,原因有以下几点: 性能并不重要(Performance doesn’t matter); Go 本身就够快; 可读性胜过速度; 以

周末看完这本 gRPC 的书后,我决定送 10 本给读者

大家好,我是站长 polarisxu。 牛年春晚,Go语言中文网组织的活动,送了 10 本 《gRPC与云原生应用开发:以Go和Java为例》。上周末,我翻了下这本书,决定对该书做一个介绍,同时再送 10 本给我的读者。 01 gRPC 是什么? 这是一本关于 gRPC 的书,所以简单介绍下 gRPC 是什么,相信很多人不陌生。 2015 年 2 月 26 日,谷歌宣布开源 gRPC,并称其「基于公司多年的分布式系统构建经验」。因为

微信 Mac 版 3.0 支持浏览朋友圈:划水更方便了

大家好,我是站长 polarisxu。 有些人应该已经知晓,微信流出了 Mac 的 3.0 Beta 版本。为什么说流出呢?因为微信官网并没有提供下载。访问:https://mac.weixin.qq.com/,发现测试版本还是 2.6.1。 01 简单介绍下 3.0 版本的新功能。 Mac 的 3.0 版本安装后会显示一个弹窗,可以看到更新信息: 其中第一条就是:可以浏览朋友圈。在主窗口的左侧有一个朋友圈入口,如下图