Odczyt kodu źródłowego math/floor.go
, starting from line 13, czytałem trochę kodu:Bezcielesnego funkcja w Golang
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
}
Wydaje się func Floor
ma ciało. Próbowałem skopiować i wkleić ten kod w moim pliku. to się nie kompiluje. Komunikat o błędzie to missing function body
. Moje pytanie brzmi: czy funkcja pozbawiona cielesności jest legalna w składni Go? Dzięki.
Jakie jest znaczenie implementacji funkcji "floor (x ...)' (małe litery)? W jaki sposób odnosi się do implementacji złożenia? – maerics
@maerics Wierzę, że jest to awaryjna implementacja Go, używana na przykład przez [floor_arm.s] (https://github.com/golang/go/blob/master/src/math/floor_arm.s#L8). Takie rzeczy mogłyby ewentualnie zostać wykonane w celach referencyjnych lub do wykorzystania w testach, aby sprawdzić inne implementacje. (Go sam w sobie nie oznacza żadnego związku między 'Floor' i' flooridentami '). –
@DaveC Dzięki za cytat. Dodałem go do odpowiedzi. – inf