Golang 中的无实体函数

阅读 的源代码math/floor.go,从第 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 语法中的无实体函数是否合法?谢谢。


慕标5832272
浏览 268回答 2
2回答

喵喔喔

这是在汇编中实现函数的方式。您可以在floor_ARCH.s(例如:AMD64)文件中找到程序集实现。引用规范:函数声明可以省略主体。这样的声明为在 Go 之外实现的函数提供了签名,例如汇编例程。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go