170 похожих чатов

Считывание из канала в ретурне нормальное явление? Допустим есть функция,

внутри него горутина и бесконечный цикл, в котором есть селект, который следит за двумя каналами: done и ticker.C. Если вдруг в done что-то попало , нужно просто вернуть ошибку и выйти из функции. Как это лучше сделать? Например:
func Check() {
ticker := time.NewTicker(time.Second*10)
done := make(chan error)

go func() error {
for {
select {
case <-done:
return
case <-ticker.C:
// что-то делается
}
}
}()

return <-done
}

4 ответов

7 просмотров

func Check() { ticker := time.NewTicker(time.Second*10) done := make(chan error) for { select { case <-done: return case <-ticker.C: // что-то делается } } }

defer ticker.Stop()?

хотя я не понимаю, что вы хотите получить. почему return внутри go func() пустой, почему там может вернуться ошибка и куда вы думаете ее вернуть 🙂

func Check() <-chan error { ticker := time.NewTicker(time.Second*10) done := make(chan error) go func() error { for { select { case <-done: return case <-ticker.C: // что-то делается } } }() return <-done }

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

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Всем привет, после Си стоит учить плюсы или лучше на раст перейти?
Linus
8
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
или вы считаете муит дает знание?
супер_лох_3000 альфа версия
12
значить например он учился в СДУ то получается он особенный?)
Asets Serikov
11
Карта сайта