摘要:我见过的关于 context 的全网最全面、最有深度的文章! 阅读全文
posted @ 2019-06-12 08:46 Stefno 阅读(6416) 评论(2) 推荐(5) 编辑
摘要:unsafe 打破了 Go 的类型安全,却在某些场景下极大提升代码的效率,是高阶程序员的瑞士军刀。 阅读全文
posted @ 2019-06-03 09:07 Stefno 阅读(4211) 评论(0) 推荐(1) 编辑
摘要:图解 Go 语言 map 的底层原理 阅读全文
posted @ 2019-05-22 09:02 Stefno 阅读(10809) 评论(2) 推荐(7) 编辑
摘要:Go 作为一门静态语言,相比 Python 等动态语言,在编写过程中灵活性会受到一定的限制。但是通过接口加反射实现了类似于动态语言的能力:可以在程序运行时动态地捕获甚至改变类型的信息和值。 阅读全文
posted @ 2019-05-06 22:36 Stefno 阅读(5960) 评论(3) 推荐(2) 编辑
摘要:基本涉及到了 interface 的方方面面,有例子、有源码分析、有汇编分析。直接从 10 个问题出发,深度解答。 阅读全文
posted @ 2019-04-25 06:23 Stefno 阅读(7354) 评论(4) 推荐(5) 编辑
摘要:slice 是 Go 语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更底层的汇编语言去解读它,这是一个新的世界。 阅读全文
posted @ 2019-04-01 22:23 Stefno 阅读(5776) 评论(2) 推荐(5) 编辑
摘要:理解了Go汇编语言,可以让我们对Go的理解上一个台阶! 阅读全文
posted @ 2019-03-19 23:20 Stefno 阅读(7138) 评论(13) 推荐(9) 编辑
摘要:Golang运行时的内存分配算法主要源自 Google 为 C 语言开发的`TCMalloc算法`,全称`Thread-Caching Malloc`。核心思想就是把内存分为多级管理,从而降低锁的粒度。 阅读全文
posted @ 2019-03-13 08:29 Stefno 阅读(3227) 评论(2) 推荐(1) 编辑
摘要:写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使用和销毁的责任都在程序员。一不小心,就会发生内存泄露,搞得胆战心惊。切换到Golang后,基本不会担心内存泄露了。虽然也有new函数,但是使用new函数得到的内存不一定就在堆上。逃逸分析告诉你变量到底去哪儿? 阅读全文
posted @ 2019-02-28 21:26 Stefno 阅读(1823) 评论(0) 推荐(1) 编辑
摘要:defer是Go语言提供的一种用于注册延迟调用的机制:让函数或语句可以在当前函数执行完毕后(包括通过return正常结束或者panic导致的异常结束)执行。深受Go开发者的欢迎,但一不小心就会掉进它的温柔陷阱,只有深入理解它的原理,我们才能轻松避开,写出漂亮稳健的代码。 阅读全文
posted @ 2019-02-12 22:20 Stefno 阅读(3501) 评论(1) 推荐(3) 编辑