I\'m currently working my way through the excellent Tour of Go. I finished one of the exercises (#45) with the following solution:
func Pic(dx, dy int) [][]uint8
There is no other way to do this in Go.
Yes, I agree it is verbose, but necessary. The second make() statement is entirely independent of the first one. It could be argued that the compiler should be able to infer the type from pic[i]
, but it doesn't at this point.
Another point: how would the make() statement look if you omitted the type in the second case? The make() is still required to do the actual allocation and to be able to specify the required len/capacity.
As a side note, you mixed up the slice lengths. The exercise states the top level slice should have length dy
, not dx
as you put in your code.