Slava
хотя возможно для пхпшников не бесплатна..
Anonymous
хотя возможно для пхпшников не бесплатна..
Типа мотивируют отказаться от пэхэпэ с помощью пиццы?
Мерль
в гугле пицца бесплатна, зачем заказывать? =)
Дык они всё равно её где-то берут)
Slava
Типа мотивируют отказаться от пэхэпэ с помощью пиццы?
нет, в гугле для аутсорса нет ништяков типа еды и прочего. а пхп явно аутсорс =)
🎉
Я думаю, есть задачи, на которых питон устраивает гугл. Если бы изначально был только го, то могла возникнуть ситуация, при которой бы у гугла появился питон.
В контексте ютюба питон вот не устраивает гугл, и собсно они какой-то даже транслятор наваяли из питона в го.
Мерль
https://play.golang.org/p/FV5r5Tn5J7b
Вот более менее универсальный вариант
🎉
какой-то один разработчик наваял, а не "они"
Я читал об этом вчера, верить тоже низзя, но один разраб конечно не потянет...
Slava
почему не потянет? они там в гугле баклушы бьют, времени вагон
Slava
у нас 1 человек писал jit интерпретатор для питона, недописал правда ..
freezlite
Anonymous
@freezlite а зачем это в го чатике кидать? Тут копипаста возведена в абсолют )))
🎉
Интересно, хм. Вот к примеру мапа m := make(map[string]interface{}) запхал я в неё json, определил что m["items"] это массив, как теперь приведение типов сделать что-бы куда-то вынуть данные? Если я конечно правильно размышляю, пните где не так.
🎉
m["items"].(type)
Не, слишком просто))) Ругается.
🎉
Хотя...
Stanislav
Не, слишком просто))) Ругается.
Это надо отдельной переменной назначить, ибо гошечка не знает, что у тебя там. А читать надо про рефлексию)
Zloy-Dobry
И рефлексировать)
🎉
Загугли golang type switch
Нууу, так я тип определю, правильно?
Мерль
Нууу, так я тип определю, правильно?
И определишь и распакуешь значение из пустого интерфейса
🎉
И определишь и распакуешь значение из пустого интерфейса
Да, но что-бы распаковать, нужно ассёртшен сделать?
Zloy-Dobry
Сделай тип и анмаршаль в него свой жасон, почему так не сделать?
Мерль
Да, но что-бы распаковать, нужно ассёртшен сделать?
Нет Блин, посмотри что такое type switch уже)
Zloy-Dobry
Нет Блин, посмотри что такое type switch уже)
Агага, и об клаву приложить))) типа, смотри тайп свитч, ска, я сказал
🎉
Сделай тип и анмаршаль в него свой жасон, почему так не сделать?
Так не нуно, ибо, хочу запросить около ста структур, и взять из них одно поле для проверить, получается нужна мапа.
Zloy-Dobry
Разных?
Artem
Так можно засунуть это поле в мапу, а не все структуры
Zloy-Dobry
Ну так, да, проще мапой.
Zloy-Dobry
m["items"].(type)
Тогда тут правильно
🎉
Тогда тут правильно
Ну дык ругается, да и тип не понятно какой впендюрить туды?
Zloy-Dobry
Lol
Zloy-Dobry
В примере же написано
Zloy-Dobry
Type, где тайп твой тип
Artem
Ну если у тебя есть n разных типов и тебе нужно конеретное поле, засунь это поле и не парься с рефлексией
Stanislav
В примере же написано
ну а вдруг он хочет map[string]string привести как SomeStruct{Data: map[string]string}?
🎉
Type, где тайп твой тип
Там массив, ну изначально json с разными типами, то есть я не могу объявить массив непонятно с каким типом.
Artem
Есть вариант анмаршалить не в map[string]interface а в нормальный тип, если хочешь
🎉
Есть вариант анмаршалить не в map[string]interface а в нормальный тип, если хочешь
Это получится структура тогда, и по ней циклом не пробежать...
Artem
Так у тебя там же массив,
Anonymous
@vetcher иди работай
Artem
@gurinderu the same
🎉
Вот как образец var a []string a = m.(string) fmt.Printf("%#v", a) invalid type assertion: m.(string) (non-interface type map[string]interface {} on left)
Zloy-Dobry
a = m["pole"].(string)
Zloy-Dobry
Тебе же надо одно поле, а не весть массив?
🎉
Тебе же надо одно поле, а не весть массив?
Я кажется понимаю как, спасибо, щас запробую.
freezlite
https://play.golang.org/p/ocP1D8mPbOF
🎉
https://play.golang.org/p/ocP1D8mPbOF
Спасибо, но гладко было на бумаге, вот примерно как это выглядит map[count:6408 items:[map[owner_id:-6.0509447e+07 can_delete:1 comments:map[count:1 can_post:1] likes:map[can_like:1 can_publish:1 count:0 user_likes:0] from_id:-6.0509447e+07 created_by:1.85652541e+08 attachments:[ ... ]] post_source:map[type:vk] date:1.520770699e+09 marked_as_ads:0 post_type:post text:Атака зомби! can_edit:1 can_pin:1 id:8683 reposts:map[user_reposted:0 count:0] views:map[count:99]]]]
Zloy-Dobry
Ну включай голову, вариантов как делать тебе дали
freezlite
объясните пожалуйста что такое method value
freezlite
я тупой из доки не понимаю
freezlite
https://youtu.be/RLR1C8xXiiA?list=PL3xVZC4USRNQbOtJ9OMyvTARfXOv3vwD8&t=277
freezlite
текущий фрагмент описыват method expressions через method values
Aleksandr
ну видимо имеется в виду val := struct{...} val.Test vs struct{...}.Test
Aleksandr
то есть получение поля сразу после объявления структуры
Pawel
сложные парсинги пишу на goyacc
весьма унылое знятие. К счастью не нужное ввиду наличия goparsec
Roman
весьма унылое знятие. К счастью не нужное ввиду наличия goparsec
зато надежное, проверенное временем. посмотрел goparsec и пока не впечатлился.
Pawel
асемблер тоже надёжное проверенное временем. некоторые сотрят на сишечку - и тоже не впечатляются.
Васильев Виктор
Минус Яков и лексов в громоздкости и недостатке контроля над ошибками
Pawel
отож
Васильев Виктор
Так что парсек гораздо лучше
Aleksandr
пытается повторением пройденного зафиксировать наконец в памяти)
Pawel
мне бы его проблемы
Anonymous
Simple cloud прям хорошо, по крайней мере на первых парах. Спасибо всем кто посоветовал вчера
Anonymous
не реклама!
Axm
что там за процессоры?
Anonymous
что там за процессоры?
Я сильно не вникал, нужно было быстр развернуть инфраструктуру, выбрал тариф за 500 руб в месяц (golang nginx) 23 контейнера полетели нормально
Anonymous
Axm
lscpu что показывает? можешь проверить?