ホームページ > バックエンド開発 > Golang > 暗黙的な型の型リフレクションはどのように機能しますか?

暗黙的な型の型リフレクションはどのように機能しますか?

王林
リリース: 2024-02-06 09:30:08
転載
933 人が閲覧しました

暗黙的な型の型リフレクションはどのように機能しますか?

質問内容

私の知る限り、goは静的に型付けされており、通常は暗黙的な型変換を行いません。したがって、明示的な型宣言のない定数は、最初の使用時に要件が適用されます。

したがって、以下のコード スニペットでは、nfloat64 にしたいとします。これは、math.sin が期待しているものだからです。しかし、反映されたタイプを印刷すると、int が表示されます。

リーリー

ここで一体何が起こったのでしょうか? n 実際に暗黙的な int 型は存在するのでしょうか?それとも、リフレクションではこのような実際の型のケースは表示されませんか?明示的に型を指定するとコンパイラがエラーをスローするため、math.sin がその引数を型キャストしているとは思えません。


正解


[型なし定数の型]は、初回使用時の要件によって異なります。

ここがあなたが間違っているところです。用途に応じて独自にタイプを選択します。

math.Sin には float64 引数が必要なので、コンパイラはここで float64 を選択する必要があります。

reflect.TypeOf はインターフェース パラメータを取るため、コンパイラは任意の数値型を自由に選択できます (数値型はすべて空のインターフェースを実装しているため)。ここではデフォルトの整数型 int が選択されています。

以上が暗黙的な型の型リフレクションはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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