Маjко
Совсем не обязательно. Но даже обычные навороты из 100500 уровней это кошмар.
100500 уровней — это когда генерики объединяют с ООП
Dmitry
перефразирую — нахрена?
Многоуровневые контейнеры? Ну иначе ту же map[string][]map[string]string сделать нельзя на основе именно типов
Dmitry
И вот такой код я уже в кешах встречал - когда уровни кешей инвалидируются
Dmitry
типы посложнее только были =)
Dmitry
чё? https://play.golang.org/p/pUtswD6VD-v
Сейчас это работает так как slice и map это встроенные метатипы хех
Kirill
ну
Dmitry
ну вот на основе кодогенерации такое уже не сделать
Dmitry
через свои map и slice
Dmitry
сделать
Ну вперед =)
Kirill
в чём проблема-то?
Kirill
Ну вперед =)
что вперёд? когда мне такое надо было сделать, я сделал
Dmitry
Проблема в том, что если это делать на основе кодогенерации нужно либо цепочку пакетов генерировать - либо отменять правило о цикличных импортах
Kirill
wut?
Dmitry
wut?
Говорю - попробуй =) Я уже много кодогенараторов так или иначе написал - я понимаю о чем идет речь.
Dmitry
ну я думаю можно на этом обсуждение прекратить)
Daniel
А вот это я могу ответить - в текущей модели Go нельзя сделать аналог Vector<List<Vector>>
насколько я понимаю, делать придется все же Vector<List<Vector<something>>> и почему этого нельзя сделать кодогенерацией - я не понимаю
Dmitry
...ммм - есть два решения - через генерацию всей цепочки метатипов в одном пакете, либо генерацией для первого мета типа и третьего метатипа отдельных пакетов. Оба решения имеют свои минусы. Те нельзя в одном пакете сгенерить свою карту c ключом от типа другого пакета, который будет ссылаться на этот пакет. А вот это ведет уже к разрастанию кода - причем и для рантаима который не понимает что из этого можно безопастно удалить. Более того в компиляторах с более менее продвинутыми генериками испольузется мономорфизм - это когда map[string]int и map[string]int64 в итоге генерируют один код. Для интерфейсов это тоже работает. И это позволяет сократить размер итогового бинаря и размер работы для рантаима который по типам ходит при инициализации.
Dmitry
Второе кстати недавно было проблемой для кубиков - у них в 1.9 они лимитов по числу типов в рантаиме достигли. Как раз за счет генерации кода.
A
https://gitlab.com/gitlab-org/gitlab-ce/issues/37832 https://gitlab.com/gitlab-org/gitlab-ce/issues/1337#note_36293613 Так до сих пор и нет какого-нибудь workaround, кроме имен пакетов с .git?
A
*Если не считать "не использовать подгруппы", конечно. :)
Anonymous
Подскажите, пожалуйста как праивльнее в случае err выполнения запроса выполнить его еще 5 раз с интервалом в 30 сек? рекурсивный вызов выглядит как бесконечное выполнение func myRequest(method, url, param) { ...... res, err := http.DefaultClient.Do(req) if err != nil { for i:=0; i<5; i++ { time.Sleep(time.Second*30) myRequest(method, url, param) } return res.Body } ....... }
Anonymous
Почему не просто http.DefaultClient.Do? Как у вас же выше.
он возвращает res, err и мне их надо как то передать выше
Anonymous
чтобы понять ошибка или все же вышло
Aleksandr
отдели выполнение задачи от непосредственно http-запроса
Aleksandr
execute(method, url, param) request(method, url, param) в первом методе делай проверки и если надо выполняй новый запрос.
Fastumkruk
Не овсем по теме, извиняюсь, просто спор у меня тут. На пыхе команда get_content(URL) создает гет запрос?
Fastumkruk
Aleksandr
По умолчанию гет
Anonymous
да
По-умолчанию - да, GET. Но можно сделать и POST
Aleksandr
Но можно передать контекст
Fastumkruk
Спасибо!
Aleksandr
https://blog.golang.org/go1.11 https://golang.org/dl/
Kirill
jaja
Kirill
gramework supports this shit already
Kirill
go1.11 вышел, я посмеялся на тему того, что в чате новость эта прилетела уже после моего пуша с поддержкой 1.11 :D
Anonymous
понятно)
Michael
1.11 это хорошоу
freezlite
пишу консольное приложение, как удалить текст stdin после ввода пользвателем
freezlite
чтобы он не видел свой набранный текст?
Wingman
http://invisible-island.net/xterm/ctlseqs/ctlseqs.html
Wingman
ну или там, ввёл 10 символов - послать ему 10 бекспейсов (char 8 вроде)
Olzhas
шо посоны, кто уже потыкал vgo?
Olzhas
огонь!
Olzhas
goland еще парсить его научился быстро
Sergey
Как можно в makefile указать путь до GOROOT? Пробовал: GOBIN=${GOROOT}/bin/ GOCMD=$(GOBIN)go но при запуске в консоль пишет make: /bin/go: Команда не найдена
Wingman
кто-нибуть x/crypto/ssh юзает? есть какой-нибудь способ управлять его таймаутами?
Wingman
А то совсем лажа. Задаётся единственный таймаут, вообще на всё соединение в целом. А я, допустим, хочу иметь долгое соединение, но иметь read/write deadlines
Sergey
шо посоны, кто уже потыкал vgo?
Как его завести то? обновлися до 1.11 создал папку вне gopath и go mod init пишет: go: cannot determine module path for source directory /media/terro/PROJECT/GOLANG/anime/api (outside GOPATH, no import comments)
Sergey
понятно еще имя нужно указать 😐
Olzhas
создай файл go.mod
Olzhas
в нем напиши module myModuleName
Olzhas
потом go get ./
Aleksandr
шо посоны, кто уже потыкал vgo?
средне. пару дней назад отписывался.
Sergey
потом go get ./
а папка vendor не должна создасться при этом?
Olzhas
нет
Aleksandr
а папка vendor не должна создасться при этом?
Но можно для легаси проектов
Sergey
Но можно для легаси проектов
я просто подумал что зависимости коряво скачались, но потом увидел что в goland появилась менюшка с зависимостями проекта
Dmitrii
о, 1.11 релизнулся?
Dmitrii
годнота!
Pawel
Go 1.11 now requires OpenBSD 6.2 or later, macOS 10.10 Yosemite or later, or Windows 7 or later; support for previous versions of these operating systems has been removed. это имеется ввиду что сама гошечка по свиндовз XP не работает, или откомпилированная прога?
Dmitri
Это означает, что никто ничего не обещает
Pawel
гошечка или прога?
Ivan
го не стартует на xp, прога - стартует. на виртуалке проверил
Vladimir
спасибо. А то я очканул
То есть в 2018 году от наличия xp ты не очкуешь?
Pawel
То есть в 2018 году от наличия xp ты не очкуешь?
А чего мне очковать? мне сказали - вырыть яму, залить говном, я - рою, лью. Дальше пусть вумные манагеры разруливают После санкции кстати ХР имхо уже не будет выглядеть такой убогой как раньше
Pawel
riscv опять таки появился. Есть надежда что голанг наш запилят под RISC архитектуру. Тоже перспективы хорошие в плане дауншифтинга
Anonymous
как получить кол-во дней в текущем месяце?