I am trying to create a high dimension array in Golang.
Does anyone know how to do it?
e.g.
dims := [3,2,1]
as a parameter -> want high_dims_array := make([3][2][1]int, 0)
dims := [2]
-> want high_dims_array := make([2]int, 0)
dims := [3,3]
-> want high_dims_array := make([3][3]int, 0)
Where the dims
is a variable containing dimensions.
Thanks my friends. I have figured out a way to do this
func initialCube(shape []int) []interface{} {
// base condition
if len(shape) <= 1 {
dim := shape[len(shape)-1]
retObj := make([]interface{}, dim)
for i := 0; i < dim; i++ {
retObj[i] = 0.0
}
return retObj
} else { // recursive
dim := shape[len(shape)-1]
retObj := make([]interface{}, dim)
for i := 0; i < dim; i++ {
retObj[i] = initialCube(shape[:len(shape)-1])
}
return retObj
}
}