Alexandr
ок
Oleh
Andrey
Илья
Anonymous
хмм, не очень понимаю, в чем именно вопрос, на 36 строке создается небуферизированый канал, на 39 в него передают аргумент, если это делать не в горутине, на этом программа зависнет, тк из канала никто не читает
Вероятно, вопрос в том, - зачем писать это именно в горутину, когда можно написать на той же строчке и без неё. Точно так же произойдёт чтение же.
Alexandr
Daniel
в каком смысле он освободится?
Alexandr
Илья
канал небуферизирванный, программа остановится на записи, пока не будет читающей стороны
Anonymous
да, вопрос в этом
Канал не освободится. на момент 39 строки ещё никто его не слушает
Alexandr
Anonymous
как это не пишет? если на 39 строке будет написано без горутины просто worklist <- os.Args[1😏 это и есть запись
Daniel
да, и она встанет навсегда, потому, что читать-то некому
Anonymous
Если же она будет в отдельной горутине, то "зависнет" та горутина отдельная, а не текущая программа.
Anonymous
всмысле, зависнет, пока в текущей программе не будет осуществлено чтение из канала на 43 строке
Daniel
можно пользоваться термином "заблокируется"
Anonymous
да.
Илья
exactly
Илья
и вы словите панику all goroutines are asleep - deadlock!
Alexandr
я почему то считал что в канал можно писать без блокировки пока в нем есть место. даже в небуфферизированный...
Anonymous
я тоже сначала не понял прикола. пишу так:
ch <- 123
<-ch
на первой же строке дедлок, потому что когда я пишу в канал, никто не слушает. Я начинаю менять местами
<-ch
ch <- 123
Опять дедлок на первой же строке, потому что в канал никто ещё не пишет ))
Daniel
Илья
Да
Daniel
на второй записи, или на втором чтении - опять будут
Alexandr
я понял. Спасибо Вам большое!
Daniel
вообще, буферизованный канал довольно специальная вещь
Daniel
он нужен в одном случае:
если у вас писатели пишут в среднем медленнее, чем читатели читают, но в пиках - быстрее.
Anonymous
коллеги, если данные float размаршилливаются в структуру и показываются в scientific нотации с "е", есть возможность сделать так чтобы они не меняя типа хранились и показывались нормально? Или никак, только на этапе представления данных что-то делать?
Daniel
показываются - это превращаются в строку?
Anonymous
нет, показываются это показываются
Anonymous
они показываются как 6.1e-07 а я хочу 0.00000000061
Илья
где показываются?
Anonymous
fmt.Println()
Илья
показывайте через fmt.Printf
Илья
fmt.Printf("g for Float: %g\n", c)
fmt.Printf("e for Scientific Notation: %e\n", d)
fmt.Printf("E for Scientific Notation: %E\n", d)
Anonymous
👍
Anonymous
да, верно.
Илья
если все же хочется тупо скармливать в println то нужно сделать свой тип из float и реализовать метод String()
Anonymous
Это не проблема, я просто сглупил на ерунде.
WaveCut
мимо))
Мерль
Cat
Anonymous
Гугли что такое deployment и replicas
мой вопрос заключался в том, как сделать несколько deployment в цикле.
исходя из этого я знаю что такое deployment.
кол-во реплик не причем.
если что, ответ на мой вопрос такой:
в цикле перед или после каждого deployment
необходимо задать разделительно нового документа - 3 дефиса,
это позволит в рамках одного файла задать несколько документов deployment...
Мерль
Vladislav
Мерль
Мерль
Cat
Ясно понятно
lynx
Всем привет. У коллеги в коде встретил content = content[:0] далее по коду content не используется. statickcheck отловил это дело. А мне коллега говорит, что он урезая массив он память экономит. Что тут не то, согласны?
Aleksandr
Pauline
как-то не очень вежливо
Dmitry
lynx
Dmitry
память экономится, если обнулять длину слайса, а потом в него заново добавлять элементы (при условии что вы не вылезите за capacity), в таком случае переиспользуетя низлежащий массив и не тратятся ресурсы на создание нового массива и на GC старого массива
Anonymous
ребят, а что вот это значит:
go listen(arg1)
зачем тут go? 🙂
я бы в тыртырнетах спросил, да не доходит до меня как правильно спросить..(
Ivan
Гугли "горутина"
Anonymous
сяп
Daniel
Anonymous
Anonymous
Anonymous
коллеги, подскажите, как правильно сделать.
Есть функция, она должна принимать на вход различные структуры, разбирать их свойства, делать из них json и отправлять куд-то. Сложность в том, что мы должны задать конкретный тип для аргумента данной функции. Не пойму, как заставить принимать _различные_ структуры.
Сейчас сделано коряво - аргументом служит мапа интерфейсов. Хочу избавиться от мапы.
Anonymous
Есть ли какой-то путь более правильноый кроме interface{} как аргумент для функции?
Daniel
Anonymous
Daniel
Anonymous
)))
Anonymous
Daniel
есть
Max
Ну я думаю меня поняли
Max
Daniel
теперь - да
Daniel
так вот, определяется интерфейс с методом ToJSON()
Max
Ох уж эти шарповые синтаксисы, проф. деформация