Grigory
мимикрируют
Patamen
Админы
@nenuetoflex
Sebor▂▅▇█▓▒░
Та просто чел на два фронта трудится 😏
Sebor▂▅▇█▓▒░
Данил
а контекст это канал?
Vladislav
а контекст это канал?
да, структура, в которой канал, закрытие которого сигнализирует об отмене контекста
Vladislav
Расскажит
Null
Vladislav
когда пытаешься рассказывать за голанх, но не освоил школьный курс
Null
Расскажите про структуры данных: stack, queue, linked list, trie, balanced tree, Hash Table
Ответ:
8 известных структур данных, о которых спросят на собеседовании
#теория #middle
@golang_interview
Павлик
Anup
Rostislav
Павлик
а зачем ансейф?
ну мне ж надо дерево растить. Выделять память, ставить указатели на объекты. Освобождать потом, если вдруг удалю слово. Но я на го только начинаю. потому и спрашиваю
Rostislav
Eugene
@nenuetoflex тут девушке за Эни надо бан накидать
Не ну это
Объясните ей уже, что такое any, а что такое дженерики
Eugene
ботоебы хороши
Eugene
творчески подходят
Юра (Юрий Александрович)
Противостояние броня-снаряд
Vladislav
пора уже отменить анонимность в интернете
Vladislav
тогда боты просто не смогут выживать
Юра (Юрий Александрович)
Будут регистрировать ботов на бомжей
Vladislav
её и щас-то уже по сути нет, ты не можешь полностью на анонимность в интернете полагаться
Vladislav
но при таком раскладе остаётся такая вот серая зона
Vladislav
Vladislav
главное, что при обязательной привязке к личности, эти самые личности - ограниченный ресурс
Юра (Юрий Александрович)
Потом на ПТУшников
Vladislav
пускай, пускай
Юра (Юрий Александрович)
потом на солдат, потом на рабочих, потом на госслужащих
Юра (Юрий Александрович)
А там уже и новые бомжи появятся. Неисчерпаемый ресурс. И это я еще мигрантов не упомянул в целях толерантности
Eugene
блин, а ведь можно организовать информационное рабство
Eugene
брать людей из африки и регать на них аккаунты
Павлик
ну есть обычные указатели, а не ансейф
возможно я не прав и можно обойтись обычными указателями. Но всё равно в канале Golang в статье про структуры - ожидал увидеть где собственно в гошке эти структуры найти (что то типа STL как в С++) или примеры как сделать, а не голую теорию
Rostislav
anhckie
anhckie
вроде одно и то же - постоянная отправка сигнала через какое-то время
anhckie
но в случае если мы используем селект в бесконечном цикле, то принципиальной разницы нет?
anhckie
```
for {
select {
case <-ctx.Done():
return
case <-time.After(3 * time.Second):
fmt.Println("send")
ch <- message{time: time.Now(), text: "hello world"}
}
}
```
Юра (Юрий Александрович)
афтер выдаст сигнал только один раз и все. А тикер будет слать постоянно, пока не сбросишь.
anhckie
ну вот в этом примере афтер отрабатывает не один раз, так как цикл бесконечный и афтер под капотом свой каунтер обнуляет и по итогу все как будто там тикер
Юра (Юрий Александрович)
Может быть афтера сбрасывают. Разница в том, что афтер пока не сбросишь - второй раз не заведется. А тикер и сбрасывать не надо, сам посторяется
Vladislav
лучше юзать тикер. так как он не даёт течи
Vladislav
про утечки афтера сказано в доке
Vladislav
но зато афтером чуть проще пользоваться, для такого одноразового таймаута в селекте из разных каналов
anhckie
я что-то про тикер тоже самое встречаю, мол надо - отдельно вызывайте метод stop, ибо ГК не будет его трогать
Vladislav
ну вот тикер как раз можно явно стопнуть, где-нить в дефере
anhckie
ну, да, типа сам афтер не стопнуть, но можно инстантс таймера сделать
timer := time.NewTimer(time.Hour)
который уже стопается точно так же
anhckie
короче я все равно не въехал в чем у них особая разница, больше похоже на синтаксический сахар
Grigory
Тикер для операций которые должны быть в одно и то же время запущены
Grigory
Ну точнее с равным интервалом между стартами
Grigory
Афтер ждёт честно заданное время
Grigory
Заметно будет на долгих операциях с малым интервалом ожидания
Илья
Илья
Ticker заспавнит одну и будет отправлять
Илья
+ тикер можно остановить или задать другой интервал
anhckie
Илья
и то и то
Илья
с точки зрения производительности, лучше слать несколько раз в один канал одной горутиной, чем постоянно создавать новые и нагружать сборрщик мусора + шедулер
anhckie
кажись, въехал
anhckie
finally
anhckie
спасибо, гайз )
anhckie
ну, и раз такое дело, хочу спросить.
хочу научиться прокидывать настройки интервала с какого-то файла конфигурации, как полагается.
какой формат обычно юзается на боевых проетах и какая либа? я слышал что-то про viper
Илья
Илья
duration := flag.Duration("interval", time.Second, "send interval")
flag.Parse()
interval := *duration
<-time.After(interval)
Илья
запуск:
go run . -interval=5s
Emin Zalaev
Тазашо
Не ну это
Илюха сидит орет с запуска
Emin Zalaev
Поорем с илюхой вместе
Не ну это
Eugene
ок
Null
Я не Кирилл. И вам не советую
Eugene
я не Женя и вам не советую