Initialize a 2d dynamic array in Go
arrays, dynamic-arrays, go, multidimensional-array
Solution
What you are building in your sample code is not a 2D array, but rather a slice of slices: each of the sub-slices could be of a different length with this type, which is why you have separate allocations for each.
If you want to represent the board with a single allocation though, one option would be to allocate a single slice, and then use simple arithmetic to determine where elements are. For example:
board := make([]string, m*n)
board[i*m + j] = "abc" // like board[i][j] = "abc"
Problem
I am trying to create a 2d array in Go: ``` board := make([][]string, m) for i := range board { board[i] = make([]string, n) } ``` However, given the verbosity of that, I am wondering if there is a better or more succinct way to handle this problem (either to generate dynamic arrays, or a different/idiomatic data-structure to handle such board-game like data)? Background: - this is for a board game - the dimensions of the board are not known until a user starts playing (so, say, MxN). - I want to store an arbitrary character (or a single char string) in each cell. In my TicTacToe game that will be the 'X' or an 'O' (or any other character the user chooses).