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?

questionAnswers(1)

yourAnswerToTheQuestion