ホームページ >バックエンド開発 >Golang >「math.Floor」などの一部の Go 関数はなぜ実体がないのでしょうか?

「math.Floor」などの一部の Go 関数はなぜ実体がないのでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-25 21:14:22703ブラウズ

Why Are Some Go Functions, Like `math.Floor`, Bodiless?

Go のボディーレス関数

提供されたコードは、Floor 関数がボディーレスであり、関数本体がないように見えるという特殊な状況を示しています。これは math/floor.go のソース コードを調べるときに発生する可能性があります。

調査すると、この現象は意図的なものであることが明らかになります。 Go では、アセンブリで記述された実装に対して本体のない関数が許可されます。実際の実装は、floor_ARCH.s ファイル (AMD64 など) にあります。

Go 仕様に記載されているとおり:

A function declaration may omit the body. Such a declaration provides the signature for a function implemented outside Go, such as an assembly routine.

この規定により、低レベル関数を一貫性のある適切に型指定された Go インターフェイスを維持しながら、アセンブリで定義されます。

以上が「math.Floor」などの一部の Go 関数はなぜ実体がないのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。