math/floor.go のソース コードでは、Floor という名前の関数がボディなしで宣言されています。コード スニペットは次のとおりです。
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 }
本体が欠落しているにもかかわらず、Floor 関数は正常にコンパイルされます。これは、Go の関数はアセンブリなど、言語自体の外部で実装できるためです。フロアのアセンブリ実装は、floor_ARCH.s などのファイル (AMD64 など) にあります。
Go 言語仕様では、本体なしの関数宣言が許可されています。
関数宣言は、本体を省略します。このような宣言は、アセンブリ ルーチンなど、Go の外部で実装された関数の署名を提供します。
以上がGolang 関数は本体なしでどのようにコンパイルできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。