Всем добрый вечер. Столкнулся с довольно странной проблемой. У меня примерно такая система обработки команд в чат-боте:
https://play.golang.org/p/lv_DQBgfm_zПроблема в том, что для любой команды бот выполняет действие, соответствующее последней переданной в RegisterCommands. Т.е. где-то в этом методе я накосячил, но я не могу понять где. Я, должно быть, что-то не так понимаю либо про тонкости inline-функций, либо про for range, либо ещё про что-то.
У меня есть гипотеза, что функции в мапе хранятся по указателям и при итерации по срезу используется один и тот же адрес для элемента, т.е. в мапу кладётся один и тот же поинтер, чьё значение изменяется по ходу итерации и в конце становится равным указателю на action последней команды. Если это так, то как наименее криво это пофиксить?