エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
Goでinterface引数の型がポインタのときに、ポインタの先が示す型を判別する - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
Goでinterface引数の型がポインタのときに、ポインタの先が示す型を判別する - Qiita
reflect.ValueOf, reflect.Value.Elem を組み合わせるとできる。 (この方法はユーザー定義の型ではなく... reflect.ValueOf, reflect.Value.Elem を組み合わせるとできる。 (この方法はユーザー定義の型ではなく、言語がデフォルトで用意する型を判別するもの) package main import ( "fmt" "reflect" ) func check(i interface{}) { // interfaceのValueインスタンスを取得 v1 := reflect.ValueOf(i) // ポインタの場合、さらにその先にある型を取得する処理に進む if v1.Kind() == reflect.Ptr { // Elemを利用して、ポインタの先のValueインスタンスを取得 v2 := reflect.ValueOf(v1.Elem()) // Kindを呼ぶと、ポインタの先にある型情報が得られる fmt.Println(v2.Kind()) } } t