Function 如何实现o';s len()和make()函数是否工作?

Function 如何实现o';s len()和make()函数是否工作?,function,types,go,Function,Types,Go,go的len()和make()函数是如何工作的?由于该语言缺乏对泛型和函数重载的支持,我看不出func len(v Type)int是如何实现的。这同样适用于func make(Type,size IntegerType)类型 我似乎在go源代码中找不到函数,我找到的最接近的函数是函数len和make函数是语言规范的一部分,是编译器的内置函数。内置函数的运行时支持位于中 该文件仅用于文档编制。它没有被编译。由于Go的严格类型,编译器总是知道要传递给len函数的类型,因此它会传递给不同类型的不同函

go的
len()
make()
函数是如何工作的?由于该语言缺乏对泛型和函数重载的支持,我看不出
func len(v Type)int
是如何实现的。这同样适用于
func make(Type,size IntegerType)类型


我似乎在go源代码中找不到函数,我找到的最接近的函数是函数
len
make
函数是语言规范的一部分,是编译器的内置函数。内置函数的运行时支持位于中


该文件仅用于文档编制。它没有被编译。

由于Go的严格类型,编译器总是知道要传递给
len
函数的类型,因此它会传递给不同类型的不同函数,这可以在编译时确定。在大多数情况下,您试图获取切片的长度,在这种情况下,
len
函数只需要返回该切片的结构的
len
字段(因为切片实际上是一个结构);字符串也是这样


编译器有各种各样的技巧,编译器生成的汇编代码很少遵循您键入的完全相同的逻辑。

不仅仅是编译器的一部分:它是作为语言规范的一部分硬编码的。len也是唯一能够返回常量的“函数”(在数组上使用时)。该规范赋予了我们普通程序员无法比拟的内置特殊能力。是否有链接指向实际实现
len
的确切位置?@HaraldNordgren切片上的len函数获得了。该函数被编译为字段访问。