综合
迷惑了,Go len() 是怎么计算出来的?
Posts on 煎é±0 次浏览
大家好,我是煎鱼。 最近看到了一个很有意思的话题,我们平时常常会用 Go 的内置函数 len 去获取各种 map、slice 的长度,那他是怎么实现的呢? 正当我想去看看 len 的具体实现时,一展身手,却发现竟然是个空方法: func len(v Type) int 看注解也没有 link 到其他 runtime 函数,那么 len 函数是如何被调用的呢? 先前看国外讨论 Go 计算 len 的文章时做了一些翻译和笔记(底下有参考链接),在此分享给大家,共同进步。 谜底 今天就由煎鱼带大家一同解开这个谜底。既然是谜底,那就一开始就揭开。 其实 Go 语言中并没有 len 函数的具体实现代码,他其实是 Go 编译器的 “魔法” ,不是实际的函数调用。
原文:https://eddycjy.com/posts/go/len/