Reputation: 91
I have this Javascript array, how can I recreate it in Go? I'm completely lost on how to create so many nested slices or arrays.
var jsArray = [
[
[],
[],
[],
[],
[],
],
[
[],
[],
[],
[],
[]
]
];
JSON output:
[[[],[],[],[],[]],[[],[],[],[],[]]]
Thank you!
Upvotes: 1
Views: 210
Reputation: 2565
Let's assume that the values that you will store in your current JS array will look like this
var jsArray = [
[
[1, 2],
[3, 4],
[5, 6],
[7, 8],
[9, 10]
],
[
[11, 12],
[13, 14],
[15, 16],
[17, 18],
[19, 20]
]
];
The same values can be stored in the Golang slices like this
goSlice := [][][]int{
{
[]int{1, 2},
[]int{3, 4},
[]int{5, 6},
[]int{7, 8},
[]int{9, 10},
},
{
[]int{11, 12},
[]int{13, 14},
[]int{15, 16},
[]int{17, 18},
[]int{19, 20},
},
}
The output for the above slice looks like this
[[[1 2] [3 4] [5 6] [7 8] [9 10]] [[11 12] [13 14] [15 16] [17 18] [19 20]]]
which is identical to the jsArray
structure.
Instead of slices if you want to use array than you can use the define it like this
goArray := [2][5][2]int{
{
[2]int{1, 2},
[2]int{3, 4},
[2]int{5, 6},
[2]int{7, 8},
[2]int{9, 10},
},
{
[2]int{11, 12},
[2]int{13, 14},
[2]int{15, 16},
[2]int{17, 18},
[2]int{19, 20},
},
}
Hope this will help you.
Upvotes: 2
Reputation: 1392
Try this:
func main() {
var jsArray [2][5][0]int
fmt.Println(jsArray)
}
You can create your nested slice and describe the length of each slice it contains going from the outside in.
https://www.tutorialspoint.com/go/go_multi_dimensional_arrays.htm
Upvotes: 0