Алексей
Вот я почти уверен, что рано или поздно введут.
Pawel
шизофреников прям корёжит без дженериков. Уже по одной этой причине они не нужны - чтобы позлить идиотов
Artem
Вот я почти уверен, что рано или поздно введут.
если вы следите за развитием, то у вас не должно быть «уверен\не уверен». Это так или иначе с вышесказанным никак не соотносится
Pawel
Ну да, это ж я тут регулярно поднимаю эту идиотскую тему по переливу из пустого в порожнее. Кароч, администрация, пресеките нахер эту бесовщину банхамером. Ибо достало
Васильев Виктор
давай без оскорблений, в языке есть дженерики - map, channel с ними работают
Это скорее просто шаблоны иницилизации типов но не дженерики
Васильев Виктор
Хотя даже для инициализации - да было бы полезно иметь возможность ими пользоваться. Но сами дженерики пока мне не были нужны
Васильев Виктор
За уже долгое время в го
Алексей
Это скорее просто шаблоны иницилизации типов но не дженерики
Да, не это как раз самые настоящие дженерики, только встроенные в язык. Те самые обобщённые функции и типы.
Je
Это скорее просто шаблоны иницилизации типов но не дженерики
Здрасте, это дженерики называлось еще с утра
Васильев Виктор
Это не обощеные функции и типы там нет никаких проверок и т.д. Это просто встроенные стандартные функции типа хардкода. Так даже в Делфи было(когда в нем еще не было дженериков)
Васильев Виктор
Здрасте, это дженерики называлось еще с утра
Не совсем. Дженерики это все обобщеное программирование. Да это близко и похоже но не полностью. С дженериками также идут проверки типов и операций с ними ну и все дела во время компиляции. тут же просто заполняется шаблон функции и все
Je
То есть как это нет?
Je
Обобщенное программирование, ты точно не путаешь с шаблонами в c++ и stl?
Васильев Виктор
Нет не путаю. Не поймите неправильно я не собираюсь вступать в священыне войны. Я только хотел указать на то что здесь грубо(очень) разворачивается сниппет/шаблон и все. Это просто библиотечный заполнитель сахарный и все. Там по сути больше ничего и не делается
Анастасия
#hr #вакансия #golang #Go #Москва #backend #blockchain 📌Xena Exchange - профессиональная торговая платформа для профессиональных трейдеров и институциональных инвесторов. ❗️❗️❗️Находимся в поисках: Middle Golang Developer Ты – наш идеальный кандидат, если: - имеешь опыт Golang от 1 года; - понимаешь архитектуры высоконагруженных проектов; - имеешь опыт работы с middleware - PostgreSQL, RabbitMQ, Redis. Ты еще более идеален, если: - знаешь DevOps, Docker, Kubernetes; - имеешь знания и опыт в сфере machine learning, AI; - знаешь Bash, Python; - имеешь опыт работы с финансовыми технологиями (торговые платформы, финансовые рынки). Твои задачи: - Дизайн архитектуры и разработка продукта с соблюдением баланса скорости и качества, высокой степенью самостоятельности принятия решений.ц - Развитие и поддержка инфраструктуры разработки и тестирования Мы предлагаем: - Интересные задачи: создание торговой платформы в передовой отрасли, возможность применить и прокачать скилы в создании высоконагруженных сервисов, обработке больших данных, AI; - Драйвовый коллектив единомышленников, современный технологический стек, отсутствие бюрократии, широкий простор для творчества и роста; - Щедрое вознаграждение за качественную работу + % после реализации; - Офис в центре Москвы; - Возможность самостоятельно выбрать технику для работы. зарплатная вилка обсуждаема, от 170к до 240к 💸 За подробной инфой го в личку @anastaysha163
Je
Так тебе нужно прочитать определение generic, только и всего, в них ничего больше и не должно делаться, более того в java их даже нет на уровне jvm, они в самом деле - object, но компилятор проверяет типы
Васильев Виктор
Да я знаю что такое дженерики :) Я с ними работал в разных языках и понимаю их полезность в них :)
Vladislav
https://dave.cheney.net/2018/05/29/how-the-go-runtime-implements-maps-efficiently-without-generics
Vladislav
Как бы внешне оно может и дженерики.
Васильев Виктор
Ну вот как-то так да. Спасибо за информацию кстати :)
Je
Есть еще такое, кстати, вполне могло бы использоваться вместо unsafe.Pointer https://github.com/google/syzkaller/blob/master/prog/types.go#L64
Andrey
Вопрос, а в Го не такого метода .map() или какой-то обертки? Мне вот несколько методов нужно вызывать, и результат передать следующему методу. Сейчас приходится промежуточную переменную для этого создать.
V
spread?
Aliaksandr
Вопрос, а в Го не такого метода .map() или какой-то обертки? Мне вот несколько методов нужно вызывать, и результат передать следующему методу. Сейчас приходится промежуточную переменную для этого создать.
ужас! Открою секрет - промежуточные переменные создаются в любом случае. Даже если их нет в коде, они будут сгенерированы компилятором. Так что пишите с промежуточными пременными. Тем более это упрощает отладку кода, когда один из методов делает что-то не то и хочется посмотреть на возвращаемое им значение
Aliaksandr
что проще в отладке - foo(bar(baz(x))) или a := baz(x) b := bar(a) c := foo(b)
Aliaksandr
хорошая статья по оптимизации кода на го - https://medium.com/@val_deleplace/go-code-refactoring-the-23x-performance-hunt-156746b522f7
Andrey
Легко гуглится
Я не нашел, поэтому спрашиваю...
Andrey
меня вообще тот .map инетесует, который берет результат и передает его в аргумент другого метода. Не тот, который for range делает.
Pawel
что значит валидные имена? a b c отлично подходят
Andrey
что значит валидные имена? a b c отлично подходят
не... ну это не читаемо. Что они хранят?! Хоть бы женские имена этим переменным дать, все прикольнее будет.
Maksim (Ellrion)
есть функция которая делает http запросы с кодом resp, err := client....., потом соответственно при отсутсвии ошибок читается resp.Body должен ли я делать в коде defer resp.Body.Close() ?
Aleksandr
если ошибок запроса нет, то должен
Aleksandr
if err != nil { return err } defer resp.Body.Close()
Maksim (Ellrion)
ну про проверку ошибок до дефера само собой. просто как то странно что я должен заботиться о закрытии боди
Aleksandr
почему?
Maksim (Ellrion)
ну потому что я явно ничего не открывал. например если я вообще бы только чекнул статус ответа, или хедер какой. то боди от меня по сути скрыто и я и не в курсе что мне что то закрыть надо
Pawel
Да меня не интересует их промежуточное создание. У меня проблема что я должен имя придумать валидное. Дебаггинг не нужен. Тесты есть.
== тесты есть вы пишете тесты на каждый loc? O_o скажу честно, за все эти .map .filter .fold и стрелочные функции хочется начать бить уже сейчас. Спасибо авторам Го за то, что они не пустили в язык этот булшэт
Kirill
Народ, поддержите реквест плиз https://github.com/swaggo/swag/issues/151
Kirill
Спасибо :з
L
Привет! Возник вопрос, как померить сколько в памяти весит map в байтах?
L
Или так незя и нужно замерять сколько памяти выделено до создания мабы и после заполнения через runtime.MemStats?
L
А подскажите, можно ли в одну переменную uint64 запихнуть два значения uint32 через сдвиг, а потом их прочитать?
L
и как
Daniel
Не тебе решать о чём нам тут "флудить"
Я могу порешать. Хватит тупого флуда!
Michael
и как
= << +
Anonymous
Блин
Anonymous
Не работала библиотека с гитхаба
Anonymous
Весь день с ней провозился безрезультатно
Anonymous
Щас с нуля ее поставил и заработала
Anonymous
Я **** эту *
Władimir (Zae)
злой
Anonymous
Anonymous
У меня бомбит
Anonymous
Nicholas
Привет, нуждаюсь в помощи Имею строго заданный POST запрос curl -X POST localhost:8080/api/message -d '{"email":"name@example.com","title":"Interview","content":"simple text","magic_number":101}'пробую его передать в структуру, но ничего не выходит type Mail struct { Mail string `json:"email"` Title string `json:"title"` Content string `json:"content"` MagicNumber int `json:"magic_number"` } func ApiMessage(w http.ResponseWriter, r *http.Request) { body, err := ioutil.ReadAll(r.Body) if err != nil { log.Println(err) http.Error(w, "Error reading request body", http.StatusInternalServerError) return } //log.Println(string(body)) var m Mail json.Unmarshal(body, &m) /*json.NewDecoder(r.Body).Decode(&m)*/ fmt.Println("-> ", m) }log.Println(string(body)) дает 2018/06/15 19:26:21 '{email:name@example.com,title:Interview,content:simple text,magic_number:101}'а вот m -> { 0}, где 0 - это MagicNumber int
Aleksandr
выглядит ок. на плейграунде воспроизведи
Nicholas
но как там post передавать?
Aleksandr
но как там post передавать?
у тебя же не в POST проблема
Aleksandr
раз body правильно выводит
kås
fmt.Println("%+v", m)
Nicholas
curl -X POST localhost:8080/api/message -d "{\"email\":\"name@example.com\",\"title\":\"Interview 3\",\"content\":\"simple text 3\",\"magic_number\":101}"обрабатвает как нужно, но заказчик требует curl -X POST localhost:8080/api/message -d '{"email":"name@example.com","title":"Interview","content":"simple text","magic_number":101}'
Kirill
Чё