问题
In the Go lang source code, I see a function declared without any body. https://github.com/golang/go/blob/master/src/math/log10.go#L9
func Log10(x float64) float64
But when I do the same it gives me an error: missing function body for __
https://play.golang.org/p/Ncp-0-8vHB
How is this working in the Go source code? I mean how is the math package compiling? Is this source file just for documentation purposes?
It seems like Log10 is a public/exposed version of log10, but there is no "getter" convention or anything like that in the language, so where is the body of Log10 declared???
回答1:
It is defined in assembly for various architectures in the *.s
files located in the same package.
Per the spec:
A function declaration may omit the body. Such a declaration provides the signature for a function implemented outside Go, such as an assembly routine.
来源:https://stackoverflow.com/questions/44763440/source-missing-function-body-how-is-it-compiling