Note. If you want to create an actual array (not a fragment), you will have reflect.ArrayOf in Go 1.5 (August 2015).
See recall 4111 and transfer 918fdae Sebastien Binet ( sbinet ) , correcting the September 5996 release .
reflect : implement ArrayOf
This change provides reflect.ArrayOf to create a new array of reflect.Type types at run time if the reflect.Type element is reflect.Type .
reflect : implement ArrayOfreflect : tests for ArrayOfruntime : a document that typeAlg used by reflection and should be kept in sync
This allows for a test, for example :
at1 := ArrayOf(5, TypeOf(string(""))) at := ArrayOf(6, at1) v1 := New(at).Elem() v2 := New(at).Elem() v1.Index(0).Index(0).Set(ValueOf("abc")) v2.Index(0).Index(0).Set(ValueOf("efg")) if i1, i2 := v1.Interface(), v2.Interface(); i1 == i2 { t.Errorf("constructed arrays %v and %v should not be equal", i1, i2) }
source share