Задать вопрос
@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{}.
  • Вопрос задан
  • 209 просмотров
Подписаться 2 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Go-разработчик с нуля + нейросети
    9 месяцев
    Далее
  • Яндекс Практикум
    Go-разработчик с нуля
    8 месяцев
    Далее
  • Хекслет
    GO-разработчик
    6 месяцев
    Далее
Решения вопроса 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?
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Воронеж
от 75 000 до 120 000 ₽
ITK academy Нижний Новгород
от 75 000 до 120 000 ₽