O uso de structs como matrizes ou vetores é feito da mesma forma que outros tipos de dados. 
                Definimos suas dimensões utilizando [ e ]. O acesso aos seus elementos é utilizando seus 
                índices ou linha e colunas.
            
            Sintaxe: declaração
            
var nome_vetor[<dimensao>] nome_struct
            Sintaxe: atribuição
            
var nome_vetor = [<dimensao>] nome_struct { <lista_elementos> }
var nome_matriz = [<linhas>][<colunas>] nome_struct { {<lista_elementos> }, //linha 1
                                                      {<lista_elementos>} , //linha 2 
                                                      {<lista_elementos>}}  //Linha N
//inferência
            Onde
            <dimensao>: número de elementos do array
<linhas/colunas>: dimensões da matriz
            
                O acesso aos membros de structs contidos em vetores e matrizes podems ser acessados como 
                na sintaxe abaixo: 
            
            Sintaxe: acessando membro
            
nome_vetor[indice].nome_membro = valor
nome_matriz[linha][coluna].nome_membro = valor
            
nome_vetor[indice].nome_membro
nome_matriz[linha][coluna].nome_membro
            
                Ao recuperarmos um elementos do tipo struct contido em um vetor ou matriz e posterior 
                alteração de seus membros não irá refletir no elemento original pois uma cópia foi realizada.
            
            Exemplo 7
            
package main
import "fmt"
type produto struct {
	codigo int
	nome   string
	valor  float32
}
func main() {
	var produto1 produto = produto{codigo: 1, nome: "prod1", valor: 1.99}
	var produto2 produto = produto{codigo: 2, nome: "prod2", valor: 1.99}
	lista := [2]produto{produto1, produto2}
	matriz := [2][2]produto{{produto1, produto2}, {produto1, produto2}}
	lista[0].nome = "produto1"
	fmt.Println(lista)
	matriz[0][0].nome = "produto2"
	fmt.Println(matriz)
}
            Saída
            
[{1 produto1 1.99} {2 prod2 1.99}]
[[{1 produto2 1.99} {2 prod2 1.99}] [{1 prod1 1.99} {2 prod2 1.99}]]
            
                Para iterar elementos de matrizes e vetores os comandos de repetição devem utilizados. Os 
                comandos de repetição foram vistos em Go: Comandos de repetição.
            
            Exemplo 8
            
package main
import "fmt"
type produto struct {
	codigo int
	nome   string
	valor  float32
}
func main() {
	var produto1 produto = produto{codigo: 1, nome: "prod1", valor: 1.99}
	var produto2 produto = produto{codigo: 2, nome: "prod2", valor: 1.99}
	lista := [2]produto{produto1, produto2}
	for indice, prod := range lista {
		fmt.Println(indice, prod)
	}
}
            Saída
            
0 {1 prod1 1.99}
1 {2 prod2 1.99}