Заур
А сам начинаешь писать, все скатывается просто в обертки к структурам
Andrei 🦉
интерфейсы объединяют поведение структур
а по моему интерфейсы нужны почти везде для тестируемого кода, DI и всего такого
Aleksandr
Всем привет, кто знает как десириелизовать json в структуру, при том чтобы 1.33e+02 конвертнулось в int? https://play.golang.org/p/S679xDA3DpA
Andrei 🦉
Всем привет, кто знает как десириелизовать json в структуру, при том чтобы 1.33e+02 конвертнулось в int? https://play.golang.org/p/S679xDA3DpA
https://stackoverflow.com/questions/22343083/json-marshaling-with-long-numbers-in-golang-gives-floating-point-number первый ответ, если в кратце - нужно сделать кастомный Decoder
.
Может кто то подсказать, почему сейчас многие используют VS Code?
Aleksandr
гит, форумы и т.д. уже облазил
Karey
Может кто то подсказать, почему сейчас многие используют VS Code?
Потому что он бесплатный, открытый, легкий и там хорошая поддержка Go и других языков? Чем лучше Атома - для меня selling point стало наличие воркспейсов, а когда добавили и multi-root projects то стало совсем хорошо и я перелез на vscode.
Alexander
@floyernick я использую потому что быстрый, красивый, сносно работает с несколькими языками (как минимум мне для Python и Go - вполне норм). Из минусов - неудобно переключаться между проектами, нужно несколько окон открывать и нет хороших средств интроспекции все же какие есть в IDE от JetBrains например. Но я попробовал недавно goland - и сразу прочувствовал насколько я не хочу так долго ждать индексаций всяких
Alexander
@kareyoke а multi-root projects как раз убирают необходимость нескольких окон?
Alexander
спасибо - круто
Andrei 🦉
гит, форумы и т.д. уже облазил
https://play.golang.org/p/tsBI_bkp8zA нашел косяк, го не может сконвертить твою строчку в int64
Andrei 🦉
а во float64 может
Aleksandr
мне сказали в соседней группе по го пилить свой тип с интерфейсом
Aleksandr
да
Aleksandr
так как у жс нету понятия инта
Aleksandr
а просто нубмер
Andrei 🦉
ну ты можешь изменить в структуре тип поля на float, либо таки написать кастомный decoder с помощью int32(json.Number(`4.24e+03`).Float64())
Aleksandr
у меня протобуф
Aleksandr
и уже все подвязано
Artem
Мне кажется или интерес к Golang растет все больше и больше? Но почему? Вакансий совсем немного
Daniel
хайп добрался до штатов
Alexandr
Добрый день, подскажите, как можно добавить в существующую структуру с данными новое поле?
Anonymous
Ну, просто берешь и добавляешь :)
Alexander
Добрый день, подскажите, как можно добавить в существующую структуру с данными новое поле?
Без перекомпиляции? Нет. Можно только map использовать вместо структуры
Alexandr
Ну, просто берешь и добавляешь :)
а можно поточнее? вот есть такая структура type Test struct { Volume float64 UserId int64 } у меня метод возвращает эту структуру, как мне в нее добавить еще поле Status int
Alexandr
а в json как добавить дополнительные поля тогда?
Alexander
так же - просто взять и дописать. В чем вопрос то?
Anonymous
🍿
Alexandr
так же - просто взять и дописать. В чем вопрос то?
вопрос в том чтобы добавить не в самой структуре, а после получения результата в методе этой структуры
Alexander
Что-то какое-то гадание опять. Есть пример кода?
Alexander
Динамически в структуру свойства добавлять, как в JS или PHP нельзя.
Kirill
Динамически в структуру свойства добавлять, как в JS или PHP нельзя.
Ну - как сказать Можно сделать свои структуры с блэкджеком и клюшками
Alexander
Ну - как сказать Можно сделать свои структуры с блэкджеком и клюшками
тс... не надо автора вопроса путать, он и так запутался
Artem
вопрос в том чтобы добавить не в самой структуре, а после получения результата в методе этой структуры
это строготипизированный ЯП с сильной системой типизации, юыло бы странно иметь такую возможность. Точнее старнно было бы иметь возможность сделать это просто. Предлагаю забить на это в данный момент ))
Мерль
вопрос в том чтобы добавить не в самой структуре, а после получения результата в методе этой структуры
Сделай структуру обёртку Сделай опциональное поле Сделай map Тебе не надо этого делать
Artem
давайте уже codegen че там
Alexandr
https://play.golang.org/p/k0uG3UUn-tY
Alexandr
простой пример, я хочу в result добавить поле, это можно сделать не в самой структуре
Alexandr
а как в аля питоне append
Daniel
нет
Kirill
давайте уже codegen че там
Да в дупу всё, давайте уже на c++ или можно взять goja и выполнить js
Daniel
статическая типизация, слышали?
Kirill
статическая типизация, слышали?
#этовсеголишьсоглашение
Daniel
а?!
Daniel
я слышу сарказм, но не понимаю его :(
Artem
простой пример, я хочу в result добавить поле, это можно сделать не в самой структуре
result - это переменная типа Test, если в нее добавить поле -это будет уже другой тип, можно создать Test1/Test2 и предусмотреть все 🤦‍♂️
Мерль
простой пример, я хочу в result добавить поле, это можно сделать не в самой структуре
Либо используй map(плохой вариант) либо создай ещё типов
Daniel
да это понятно все
тогда откуда вопрос про "добавить"?
Artem
я этого не говорил map[string]interface{}
Kirill
я слышу сарказм, но не понимаю его :(
Шутеечка на тему того, что выше писал - в гошке тоже можно сделать свои структуры с любыми фичами
Alexandr
тогда откуда вопрос про "добавить"?
я неправильно выразился наверно
Artem
во, это похоже на то что я хочу
не это была плохая шутка )) используйте пакет reflect. https://blog.golang.org/laws-of-reflection
Kirill
Почему никто не топит за struct to map и добавить поле в мапу?
Alexandr
разве плохая идея type Test struct { Volume float64 UserId int64 } type Test2 struct { Test Status int }
Alexander
Про мапу было моё первое предложение :) Но не очень хорошее, т.к. структура может содржать поля разных типов.
Daniel
это идея чего? лень наверх мотать
Artem
вот классная вещь, стоит почитать, можно делать все https://habrahabr.ru/post/269887/ но нужно быть аккуратным, может привести к суициду ))
Artem
это идея чего? лень наверх мотать
динамически задать поле структуры
Daniel
зачем?!
Artem
зачем?!
boring ... наверно
Artem
но наверно потому большинство и говорило, что лучше забить на это дело ))
Daniel
мне, наверное, изменило ЧЮ
Daniel
но я не понимаю
Daniel
какая-то содомия за всем этим чудится
Artem
какая-то содомия за всем этим чудится
на самом деле нормальная задача, просто решать ее наверно нужно не через добавление полей в структуру, а например с помощью тегов и рефлексии, просто скипая поле там, где оно не нужно. Но это сложно понять не написав на Go что то более или менее вменяемое.
heavycharged
А где третий вариант "экспортировать поля"?
Тогда можно невольно создать гонку, чего я не хочу. Есть методы - работать через них.
heavycharged
а где вариант хранить данные во встроенной структуре и маршаллить ее?
а вот этот вариант не понял. но я уже сделал json.Marshaler, просто записал поля в мапу