Бесполезная функция в Голанге
Считывая исходный код 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, например, процедуры сборки.