Given the scenario where you have a function which accepts t interface{}. If it is determined that the t is a slice, how do I range over that slice? func main() { data := []string{"one","two","three"} test(data) moredata := []int{1,2,3} test(data) } func test(t interface{}) { switch reflect.TypeOf(t).Kind() { case reflect.Slice: // how do I iterate here? for _,value := range t { fmt.Println(value)
はじめに Go 言語の reflect パッケージは動的に型や値を扱いたい場合に便利です。 このページでは reflect パッケージの詳しい Example をチートシートとしてまとめました。 ご案内 このページの内容を別サイトにまとめなおしました。 目的別に項目を分けたのでやりたいことからコードを逆引きできます。 また、サイト上でコードを即時実行できるように The Go Playground の実行フォームを埋め込んだので、気軽にコードをお試しいただけます。 目次 型情報を値として取得する 型情報を比較する 任意の型の値を引数とする関数を定義する リフレクションで変数を更新する 構造体のフィールド一覧を取得する 構造体のフィールドのタグ情報を取得する ゼロ値であるかを調べる ゼロ値を取得する リフレクションで数値を扱う リフレクションで文字列を扱う リフレクションで配列を扱う リフレ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く