Go言語で[]Tを[]interface{}に変換するには
Go言語で任意の型のスライスを空のインターフェース(interface{}
)のスライスに変換する方法を説明します。
ダイレクトに変換できない
int
型のスライスからinterface{}
型のスライスへ変換を試みます。
s1 := []int{1, 2}
s2 := []interface{}(s1)
すると、コンパイルエラーとなってします。
cannot convert s1 (type []int) to type []interface {}
正解
for文で各要素をコピーします。
s1 := []int{1, 2}
s2 := make([]interface{}, len(s1))
for i, v := range s1 {
s2[i] = v
}