Golang:go的len()和make()函数如何工作?

Jay*_*umb 7 types function go

go len()make()功能如何运作?由于语言缺乏对泛型和函数重载的支持,我不知道怎么func len(v Type) int可能.同样的道理func make(Type, size IntegerType) Type.

我似乎无法在go源中找到该函数,我设法找到的最接近的是这个

Cer*_*món 12

lenmake功能是内置的语言规范的一部分,编译器.内置函数的运行时支持位于运行时包中.

该文件builtin.go仅用于文档.它没有编译.

  • 它不仅仅是编译器的一部分:它被硬编码为语言规范的一部分。https://golang.org/ref/spec#Length_and_capacity https://golang.org/ref/spec#Making_slices_maps_and_channels (2认同)
  • len也是唯一能够返回const的"函数"(在数组上使用时).该规范给出了内置的特殊权力,我们只是致命的程序员无法比拟的. (2认同)
  • 是否有实际实现“ len”的确切位置的链接? (2认同)