Ваш код не делает то, что вы думаете, что он делает. Вы перебираете массив верхнего уровня в каждом цикле. Тот факт, что каждый массив имеет ровно 2 элемента, дает вам иллюзию успеха. Ошибка становится более очевидной, если вы распечатываете значения, а не индексы ( детская площадка ):
var board = [2][2][2]string{
{
{"a", "b"},
{"c", "d"},
},
{
{"e", "f"},
{"g", "h"},
},
}
for _, rowValue := range board {
for _, columnValue := range board {
for _, thirdValue := range board {
fmt.Println(rowValue, columnValue, thirdValue)
fmt.Println()
}
}
}
Вам нужно, чтобы каждый внутренний цикл повторялся по внутреннему массиву ( ссылка на игровую площадку ):
for _, rowValue := range board {
for _, columnValue := range rowValue {
for _, thirdValue := range columnValue {
fmt.Printf("\t%s", thirdValue)
}
fmt.Printf("\n")
}
fmt.Printf("\n\n")
}
, который дает этот вывод:
a b
c d
e f
g h