Anatoly
Pawel
вот и разберись
Мерль
🏁Александр
Anatoly
вот и разберись
Первая ссылка в гугле, дабы не переписывать все это еще раз: https://habrahabr.ru/post/148905/
Мерль
Мерль
Anatoly
Хз, я прост вариант встречал только в COM интерфейсах на венде.
Anatoly
Для чего он нужен?
Мерль
Для чего он нужен?
Это строго типизированный безопасный union
Можно например по каналу передавать значения разных типов
Anatoly
Разве это хорошо?
Anatoly
Хорошо. Ты меня убедил.
Мерль
👍
Anatoly
А вот ты - нет.
Pawel
это потому что ты не понял чем отличается костыльный ad hoc полиморфизм на ограничениях дженериков, о котором рассказали мальчичи из хабра, от утиной типизации в Го. Просто разберись
🏁Александр
Anatoly
Это если брать самый просто случай. Без линка.
Pawel
не нравится конечно, иначе я писал бы на C#, а не на Го, в котором не надо явно перечислять интерфейсы, которые реализует тип - это жесть конечно. Но в данном случае речь не об этом. Ресь о том, что в C# методы расширения так или иначе не нарушают инвариант расширяемого класса, а в Го нарушили бы, поэтому их в Го не будет
Anatoly
Faster golang builds #golang https://ttboj.wordpress.com/2017/02/26/faster-golang-builds/
Pawel
Чтобы ты понел, нельзя на С# (а также VB и F#) написать функцию, которая принимает в качестве параметра любой объект, у которого есть не статический метод string Error() например, а на Го это задача для тех, кто только сегодня узнал про Го. Поэтому если предположить, что отцы основатели Го ебанулись и впендюрили в Го 2 методы расширения по образцу C#, то вызывающий код сможет полностью сломать все контракты вызываемого кода, как это сейчас в javascript-е
Alexey
> отцы основатели Го ебанулись и впендюрили в Го 2 методы расширения по образцу C#,
😱😂😂
🏁Александр
эту цитату вне контекста можно сразу в горячее кидать, тема будет бомбическая :)
🏁Александр
призываю ализара, щаз на хабр тиснем "аналитическую" статью
Aleksandr
Кто использует монго драйвер? Посоветуйте "живую" библиотеку пожалуйста.
Nikita
Nikita
mgo
Aleksandr
3.6 не поддерживает
Aleksandr
а изменения файлов были давно, поэтому делаю вывод, что она не слишком живая
Nikita
c 3.4 точно работает
Aleksandr
может есть опыт юза с++ либы?
Aleksandr
3.6 нид
Nikita
Nikita
Aleksandr
cgo + adapter?)
Aleksandr
зашквар?)
Nikita
зашквар?)
думаю да) а что именно не работает?
Nikita
с 3.6
Aleksandr
changestream
Nikita
а через dbRun нет вариантов? я не знаком еще с changestream
🏁Александр
народ, кто сталкивался
🏁Александр
json: cannot unmarshal float64 into Go value of type String
🏁Александр
внимание вопрос: как это корректно обойти?
🏁Александр
по хорошему это ошибка валидации
Nikita
типы не соответствуют
🏁Александр
но до валидатора еще даже не дошло
🏁Александр
Nikita
Aleksandr
🏁Александр
вопрос блин не в "что это за ошибка помогите", а как кашерно все развернуть :)
Aleksandr
сопоставить типы
Nikita
Aleksandr
спасибо, Никита
🏁Александр
что значит "сопоставить типы"? :)
Aleksandr
{"float":1234} {"string":"1234"} - good
{"float":"1234"} {"string":1} - bad
🏁Александр
Anatoly
🏁Александр
их надо корректно послать
🏁Александр
с тычком в нос, в каком поле облажались
Nikita
Nikita
ну или принимай через интерфейс и приводи к нужному типу уже сам
Aleksandr
400 bad request )
Nikita
🏁Александр
в пыхе например при таком, оно скажет что "вася ты мудак, прислал нам fileld типа такого то, а мы ждали такой то" :)
🏁Александр
а тут просто получается "вася ты мудак, точка"
Aleksandr
&
Aleksandr
?
Slach
🏁Александр
🏁Александр
и корректно формирует json ответ с посылом
Slach
ну и?
что мешает поискать пакеты валидации
и посмотреть куда они логирование делают ?
Kirill
Aleksandr
obj, err := .....
if err != nil {
response.write(err.Error()) - ne?
}
🏁Александр
И, конечно, через фабрику ?
глобальный объект который реализует "реестр фабрик", которые зарегистированны с помощью....