Бесполезная функция в Голанге

Считывая исходный код 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? Спасибо.

Ответ 1

Это способ реализации функций в сборке. Вы найдете реализацию сборки в файлах floor_ARCH.s (например: AMD64).

Чтобы процитировать spec:

Объявление функции может опустить тело. Такое объявление предоставляет подпись для функции, реализованной вне Go, например, процедуры сборки.