Go は Golang とも呼ばれ、静的型付け言語です。これは、すべての変数の型がコンパイル時に既知であることを意味し、コードの安全性と予測可能性を提供します。ただし、これには、ある型から別の型への変換が明示的かつ意図的に行われる必要もあります。この記事では、基本的な数値変換からより複雑なインターフェイスやポインタの変換まで、Go で利用できるさまざまな型キャストと変換メカニズムについて説明します。
Go では、整数、浮動小数点数、文字列などの基本型間の変換が可能ですが、これらの変換は明示的に行う必要があります。
異なる数値型間の変換は簡単ですが、明示的に行う必要があります:
この例では、int を float64 と uint に変換します。 Go は自動 (暗黙的) 型変換を実行しないため、これらの変換は明示的です。
Go 文字列は不変ですが、変更可能なバイト スライス ([]byte) との間で変換できます:
同様に、文字列とルーン スライス ([]rune) の間で変換することもできます。ここで、rune は int32 の型エイリアスです:
Go では、既存の型に基づいて独自の型を定義できます。カスタム型とその基礎となる型の間の変換は明示的に行われます:
この明示的な変換は、コンパイラーがコードの安全性を確認できるようにするために必要です。
Go のポインタは変数のメモリ アドレスを参照します。値とそのポインタの間で変換できます:
Go のインターフェースは、一連のメソッドを定義するために使用されます。具体的な型とインターフェイスの間で変換できます:
型アサーションは、インターフェースの具体的な値へのアクセスを提供します:
タイプスイッチを使用すると、インターフェースの動的タイプに基づいてさまざまなアクションを実行できます:
安全でないパッケージを使用すると、Go のタイプ セーフをバイパスでき、本来は違法となる変換が可能になります:
6. チャネルタイプの変換 チャネルは Go の強力な機能であり、ゴルーチン間の通信を可能にします。双方向チャネルと単方向チャネルの間で変換できます:警告: 安全でない変換は、未定義の動作を引き起こす可能性があるため、慎重に使用し、絶対に必要な場合にのみ使用してください。
リーリー
リーリー
リーリー
リーリー
リーリー
リーリー
以上がGo における型キャストと変換の包括的なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。