Size: a a a

2020 July 01

DD

Deka Dancer in Go-go!
пиши на js все меньше гемора
источник

DD

Deka Dancer in Go-go!
и отправляй отпарсеное куда хочешь
источник

RS

Roman Shandur in Go-go!
морнинг!
Может кто посоветовать BDD фреймворк? Желательно, проверенный в бою.
источник

RS

Roman Shandur in Go-go!
я нашел https://github.com/cucumber/godog
но смущает, что версия не стабильна еще
источник

IS

Ilya Sinelnikov in Go-go!
Roman Shandur
я нашел https://github.com/cucumber/godog
но смущает, что версия не стабильна еще
Провереный, работает
источник

IS

Ilya Sinelnikov in Go-go!
Лучше нет
источник

RS

Roman Shandur in Go-go!
Вот еще нашел
он может и вебсокеты тестировать
https://github.com/gavv/httpexpect
источник

RS

Roman Shandur in Go-go!
Ilya Sinelnikov
Провереный, работает
Спасибо за ответ
источник

RS

Roman Shandur in Go-go!
У меня как раз планируются веб-сокеты, поэтому godog не подойдет. Но выглядит неплохо по описанию
источник

zl

ziggy lucid in Go-go!
tasks := make(chan *worker.Task)

go func() {
 scanner := bufio.NewScanner(file)
 for scanner.Scan() {
   select {
   case <-ctx.Done():
     log.Infoln("signal cancel")
     break
   default:
     // тут что-то делаем
   }
 }
 if err := scanner.Err(); err != nil && err != io.EOF {
   log.Errorln(err)
 }
 close(tasks)
}()

подскажите, почему не прерывается цикл сканера при завершении контекста?
весь цикл все равно пробегается до конца и выполняется только вывод лога "signal cancel" по количеству строчек в сканере
источник

R

Roman in Go-go!
ziggy lucid
tasks := make(chan *worker.Task)

go func() {
 scanner := bufio.NewScanner(file)
 for scanner.Scan() {
   select {
   case <-ctx.Done():
     log.Infoln("signal cancel")
     break
   default:
     // тут что-то делаем
   }
 }
 if err := scanner.Err(); err != nil && err != io.EOF {
   log.Errorln(err)
 }
 close(tasks)
}()

подскажите, почему не прерывается цикл сканера при завершении контекста?
весь цикл все равно пробегается до конца и выполняется только вывод лога "signal cancel" по количеству строчек в сканере
Добавьте 'label' к вашему for. И прерывайте его
LOOP:
for{
   select {
......
break LOOP
источник

zl

ziggy lucid in Go-go!
Roman
Добавьте 'label' к вашему for. И прерывайте его
LOOP:
for{
   select {
......
break LOOP
однако как-то нелогично выглядит
источник

ЕА

Егор Андреевич... in Go-go!
ziggy lucid
однако как-то нелогично выглядит
все логично. у тебя break ломает select а не for
источник

zl

ziggy lucid in Go-go!
Егор Андреевич
все логично. у тебя break ломает select а не for
а к select можно делать break? 😳
источник

ЕА

Егор Андреевич... in Go-go!
в го это так работает
источник

У

Улица in Go-go!
Всем ку, ребят. У кого есть опыт работы с либой https://github.com/kubernetes-sigs/controller-runtime плюсаните в чат плиз) хотел пару вопросов по работе клиента узнать
источник

zl

ziggy lucid in Go-go!
case в select выполняются в одном потоке последовательно или в разных параллельно?
источник

zl

ziggy lucid in Go-go!
иными словами, будут ли разные case выполняться одновременно?
источник

IS

Ilya Sinelnikov in Go-go!
ziggy lucid
иными словами, будут ли разные case выполняться одновременно?
Нет
источник

с

сонная википедия... in Go-go!
Nur Kutlugallyamov
кстати, вопрос появился.
если капасити input слайса меньше колическа, которое мы можем прочитать, что должно произойти:
1) удлинить слайс и все прочитать
2) вернуть ошибку
3) записать то, что влезет
записать то, что влезет, вы никак не сможете вернуть удлиненный слайс
оригинальный не изменится
источник