Source missing function body, how is it compiling? [duplicate]

半世苍凉 提交于 2021-02-09 11:51:06

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!