math/floor.go从第13行开始阅读的源代码,我读到了一些这样的代码:
math/floor.go
func Floor(x float64) float64 func floor(x float64) float64 { if x == 0 || IsNaN(x) || IsInf(x, 0) { return x } if x < 0 { d, fract := Modf(-x) if fract != 0.0 { d = d + 1 } return -d } d, _ := Modf(x) return d }
似乎func Floor没有身体。我试图将这些代码复制并粘贴到我的go文件中。它不会编译。错误消息是missing function body。所以我的问题是:Go语法中的无身体功能合法吗?谢谢。
func Floor
missing function body
这是在汇编中实现功能的方式。您可以在floor_ARCH.s(例如AMD64)文件中找到程序集实现。
floor_ARCH.s
引用规范:
函数声明可以省略主体。这样的声明为Go外部实现的功能(例如汇编例程)提供了签名。