Go 言語では、アサーションを使用してインターフェイスの変換と構造の変換を完了できます。インターフェイス変換には、あるインターフェイス タイプから別のインターフェイス タイプに値を変換するために使用されるタイプ アサーションと値アサーションが含まれます。構造変換は、ある構造を別の構造に変換するために使用されます。
Go でアサーションを使用してインターフェイスと構造の変換を実装する
Go のインターフェイスは、さまざまな変換を可能にするメソッドのコレクションです。基礎となるタイプの値がそれらを実装します。インターフェイス変換を使用すると、値をあるインターフェイス タイプから別のインターフェイス タイプに変換できます。
構造体は、関連するデータ フィールドのコレクションです。場合によっては、ある構造を別の構造に変換したい場合があります。これはアサーションを使用して実行できます。
インターフェイス変換
あるインターフェイス タイプから別のインターフェイス タイプに値を変換するには、アサーションを使用できます。アサーションには 2 つの形式があります。
次の例は、型アサーションの使用方法を示しています。
package main import "fmt" type Animal interface { Speak() string } type Dog struct {} func (d Dog) Speak() string { return "Woof!" } type Cat struct {} func (c Cat) Speak() string { return "Meow!"} func main() { var animals []Animal animals = append(animals, Dog{}, Cat{}) for _, animal := range animals { if dog, ok := animal.(Dog); ok { fmt.Println("Dog says:", dog.Speak()) } else if cat, ok := animal.(Cat); ok { fmt.Println("Cat says:", cat.Speak()) } } }
構造変換
ある構造を別の構造に変換するには、次のようにします。主張。次の例は、アサーションの使用方法を示しています。
以上がgolang を使用してインターフェイスと構造を変換するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。