Go の多用途なインターフェース{} 型を扱う場合、その固有の柔軟性をナビゲートすることが不可欠です。インターフェースを効果的に活用するために、次のような興味深い質問を掘り下げていきます。
タイプ Switch to the Rescue:
switch v := w.(type) { case int: fmt.Println("Type: integer") case string: fmt.Println("Type: string") }
TypeName の使用:
fmt.Println(reflect.TypeOf(w).Name())
TypeName の型アサーション:
typeName := reflect.TypeOf(w).Name() if typeName == "int" { value := w.(int) } else if typeName == "string" { value := w.(string) }
特定の例では、「実際の」型を取得できます。タイプスイッチを使用して w を取得します:
switch w := weirdFunc(5).(type) { case int: fmt.Println("w is an integer") case string: fmt.Println("w is a string") }
または、reflect パッケージを利用して取得することもできます。型名自体:
typeName := reflect.TypeOf(w).Name() fmt.Println("w's type name:", typeName)
以上がGo の「インターフェース」の基礎となるタイプを特定するにはどうすればよいですか?{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。