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

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

王林
王林転載
2024-02-06 09:30:08904ブラウズ

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

質問内容

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

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

リーリー

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


正解


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

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

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

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

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

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。