Задать вопрос
@gelerum

Как в telebot отделить функцию для Handle'ra?

Здравствуйте, недавно начал писать на go. Пишу телеграм бота на tucnak/telebot
Есть такой код:
bot, _ := tb.NewBot(tb.Settings{
		Token:  "bot",
		Poller: &tb.LongPoller{Timeout: 10 * time.Second},
	})
bot.Handle("/help", func(m *tb.Message) {
		bot.Send(m.Sender, "It is help")
	})

Но func(m *tb.Message) не могу никак вынести в отдельную функцию из-за m *tb.Message, её не могу передать в функцию потому что, я безпонятия, откуда она берётся. Как мне это сделать? bot.Handle принимает её как interface{}.
  • Вопрос задан
  • 187 просмотров
Подписаться 2 Средний Комментировать
Решения вопроса 1
ivankprod
@ivankprod
Системный / веб fullstack-разработчик
Вы об этом?
func handler(m *tb.Message) error {
  bot.Send(m.Sender, "It is help")
}

bot, _ := tb.NewBot(tb.Settings{
    Token:  "bot",
    Poller: &tb.LongPoller{Timeout: 10 * time.Second},
})
bot.Handle("/help", handler)

Или так?
func handler() func(*tb.Message) error {
  return func(m *tb.Message) error {
    bot.Send(m.Sender, "It is help")
  }
}

bot, _ := tb.NewBot(tb.Settings{
    Token:  "bot",
    Poller: &tb.LongPoller{Timeout: 10 * time.Second},
})
bot.Handle("/help", handler())
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Rerurk
Можно вопрос в догонку? А как отправить таким образом сообщение определенному юзеру, зная его roomId?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы