Go 中的无实体函数
提供的代码呈现了一种特殊的情况,其中 Floor 函数看起来是无实体的,缺少函数体。在检查 math/floor.go 的源代码时可能会遇到这种情况。
经过调查,很明显这种现象是故意的。在 Go 中,允许使用汇编语言实现无实体函数。实际的实现可以在 Floor_ARCH.s 文件中找到(例如,对于 AMD64)。
正如 Go 规范中所述:
A function declaration may omit the body. Such a declaration provides the signature for a function implemented outside Go, such as an assembly routine.
此规定允许低级函数在程序集中定义,同时保持一致、类型良好的 Go 接口。
以上是为什么有些 Go 函数(例如 `math.Floor`)是无实体的?的详细内容。更多信息请关注PHP中文网其他相关文章!