Opa, também sou fan de Golang apesar de não ter tanto problema quanto aos slices. E na verdade eu tenho algumas dúvidas sobre o método Map que você pretende criar não seria melhor um ToMap para converter para o Map nativo do golang? ou tu só quer tratar os slices como map?
Em resposta a Melhorando os slices em golang
1
2
Na verdade a função Map não tem nada a ver com a estrutura de dados. Ela funciona da mesma forma que o método Array.map do javascript, onde você executa uma callback em cada elemento da array e então retorna um novo arrays com os valores de retorno desse callback.
Por exemplo, esse código pega cada número em um array e retorna um novo array com os valores dobrados:
let arr = [1, 2, 3, 4];
arr.map(n => n * 2); //[2, 4, 6, 8]
Mesmo código em go:
n := arrays.New(1, 2, 3, 4)
arrays.Map(n, func(_ int, x int) int { return x * 2 }) //[2, 4, 6, 8]
1
Ah sim, esqueci que o map do javascript era mais puxado para programação funcional
Enfim, vou dar uma brincada com o código e uma refatorada, se tu quiser entrar em contato depois tem meu discord no perfil