создается каждая итерация и живет в разных масштабах каждое изменение.
йте, что у меня есть фрагмент строки пути:
paths := []string{"/path0", "/path1", "/path2" /*... "/path-n"*/ }
// where n is the last path
Используя пакетnet/http
Я хочу зарегистрировать обработчик для этого пути, используяfor
цикл с предложением диапазона. Вот как я это делаю:
for _, path := range paths {
http.HandleFunc(path, handler)
}
// in this case every handler is print the path to the console or to the browser
Но я получил тот же результат, который является последним элементом среза, поэтому, когда я иду к/path1
, выход/path-n
, То же поведение с другим элементом, всегда печатать/path-n
.
Но если я использую это:
http.HandleFunc(paths[0], handler)
http.HandleFunc(paths[1], handler)
http.HandleFunc(paths[2], handler)
// ...
http.HandleFunc(paths[n], handler)
Вывод правильный.
Что происходит, я что-то пропустил? я нуждаюсьfor
цикл для регистрации, заданный срезом путей или карты, поэтому я не могу сделать второй код.
Можете ли вы дать мне альтернативу для выполнения этой задачи?