Golang: registre várias rotas usando o intervalo para fatias / mapa de loop
Considere que eu tenho uma fatia de caminhos de string:
paths := []string{"/path0", "/path1", "/path2" /*... "/path-n"*/ }
// where n is the last path
Usando pacotenet/http
, Quero registrar o manipulador para esse caminho usandofor
loop com cláusula range. É assim que eu faço isso:
for _, path := range paths {
http.HandleFunc(path, handler)
}
// in this case every handler is print the path to the console or to the browser
Mas acabei com a mesma saída, que é o último elemento da fatia, então quando vou para/path1
, a saída é/path-n
. Mesmo comportamento com outro elemento, sempre imprima/path-n
.
Mas se eu usar isso:
http.HandleFunc(paths[0], handler)
http.HandleFunc(paths[1], handler)
http.HandleFunc(paths[2], handler)
// ...
http.HandleFunc(paths[n], handler)
A saída está correta.
O que está acontecendo, eu perdi alguma coisa? eu precisofor
loop para registro fornecido por fatia de caminhos ou mapa, então não posso fazer o segundo código.
Você pode me dar a alternativa para realizar essa tarefa?