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

golen()make()函数是如何工作的?由于该语言缺乏对泛型和函数重载的支持,我不知道这怎么func len(v Type) int可能。也是如此func make(Type, size IntegerType) Type

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


尚方宝剑之说
浏览 269回答 2
2回答

绝地无双

该len和make功能是语言规范的一部分,内置的编译器。对内置函数的运行时支持在运行时包中。文件builtin.go仅用于文档。它没有编译。

Helenr

由于 Go 的严格类型,编译器总是知道你传递给len函数的类型,因此它会为不同的类型传递给不同的函数,这可以在编译时确定。在大多数情况下,您试图获取切片的长度,在这种情况下,该len函数只需要返回该len切片结构的字段(因为切片实际上是一个结构);字符串相同。编译器有各种各样的技巧,编译器生成的汇编代码很少遵循您键入的完全相同的逻辑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go