ホームページ > バックエンド開発 > Golang > Golang 関数は本体なしでどのようにコンパイルできますか?

Golang 関数は本体なしでどのようにコンパイルできますか?

Linda Hamilton
リリース: 2024-12-29 01:30:10
オリジナル
979 人が閲覧しました

How Can a Golang Function Compile Without a Body?

Golang のボディレス関数

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート