阅读 math/floor.go , starting from line 13的源代码,我读到了一些这样的代码:

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语法中的无 body 功能合法吗?谢谢。

最佳答案

这是在汇编中实现功能的方式。您可以在floor_ARCH.s(例如:AMD64)文件中找到该程序集的实现。

引用spec:

关于function - Golang中的无 body 功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29285129/

10-12 14:52