John
ну с оговорками a, (b, c) = 1, return_tuple()
John
в любом случае в голанге так не выйдет
Andrei 🦉
ну с оговорками a, (b, c) = 1, return_tuple()
ну так ты фактически распаковываешь на две переменные, а потом вторую переменную еще на две, это именно сахар
Stepan
Всем спасибо)
Oleh
valA.Set(reflect.Indirect(valB).Convert(reflect.TypeOf(a))) там Convert не хватало
спасибо, пробовал с ним но без Indirect, теперь помогло)
Cuno
примерно так. Дженерики мало кому нужны. Для особо упоротых есть github.com/ncw/gotemplate . Только почему-то дальше парочки стандартных структур (list, ring, set, heap) и алгоритмов (sort) дело не пошло. Причем необходимость list и ring высосана из пальца: — вместо list проще и эффективнее использовать стандартный слайс — ring используется чуть меньше, чем в одном проекте на миллион, где проще написать один раз реализацию этого ring под конкретный тип в 10 строчек. Set тоже легко заменяется стандартной map[key]struct{}, хотя синтаксический сахарок тут уже поприятнее. Остается лишь дженерики для heap и sort, которые необходимы лишь в небольшом проценте оптимизированных по скорости программ, где стандартные heap и sort на интерфейсах не подходят из-за накладных расходов на вызов интерфейсных функций. Приведите примеры из настоящих программ, где еще могут понадобиться эти дженерики? вот только если у вас есть трудности с пониманием того, чем настоящая программа отличается от академического плана - лучше не надо
> примеры из настоящих программ, где еще могут понадобиться эти дженерики Генерики нужны в первую очередь для библиотек, иначе в этих самых "настоящих программах" каждый раз будут велосипеды изобретать.
Anonymous
щас бы спрашивать зачем нужны дженерики
Cuno
щас бы спрашивать зачем нужны дженерики
Зачем спрашивать. Очевидно же что не нужны.
Anonymous
ну гоферам ничего не нужно это понятно
Алексей
лол, опять дженерики обсуждают
Anonymous
а помимо очевидных контейнеров дженерики нужны хотябы чтобы сделать нормальный тип возвращаемого значения библиотечных функций
Aleksandr
коллеги, предыдущий многочасовой спор остановлен административно
Anonymous
я бы поспорил является ли нужность дженериков спором вообще...
Aleksandr
я бы поспорил является ли нужность дженериков спором вообще...
ну вот видишь. ты бы поспорил. то есть по определению это является предметом спора. последнее предупреждение
саша
ну вот видишь. ты бы поспорил. то есть по определению это является предметом спора. последнее предупреждение
Может стоит запилить отдельный гочатик для оффтопа и прочих набросов на вентиляторы?
Aleksandr
Может стоит запилить отдельный гочатик для оффтопа и прочих набросов на вентиляторы?
никто не считает дженерики оффтопом и набрасыванием. но надо в рамках держать себя
Aleksandr
если два часа по кругу одно и то же, то надо найтив себе силы остановиться
Nazar
Ребзя, а чё это го тут так сосет
Nazar
https://github.com/kostya/benchmarks/blob/master/README.md
Nazar
В некоторых пунктах прям дико
саша
Ребзя, а чё это го тут так сосет
Ну так а с чего вдруг он не должен сосатб?
саша
В Go очень много делается через рефлексию, которая отнюдь не бесплатно. Кроме того не раз видел код, где паники ловят через recover, что тоже не бесплатно. Ну и GC у Go пусть и отрабатывает с очень мелкими задержками всё равно является одним из самых медленных.
Илья
Ребзя, а чё это го тут так сосет
там очень плохая методика тестирования, да и непонятно, что именно человек сравнивает
Oz
4п
Илья
например, в json сравнивают serde_json из раста, rapidjson из плюсов и коробочный в go
Илья
что хотел сказать автор этим тестом? :)
heavycharged
синтетические тесты обычно сами по себе плохие. чисто пописькомерить норм, но когда дело доходит до реальных кейсов, все кардинально меняется.
Илья
да там сравнивается все подряд со всем подряд
Илья
и еще и код внутри разнообразный
саша
например, в json сравнивают serde_json из раста, rapidjson из плюсов и коробочный в go
Ну так в расте serde_json - де факто стандарт для парсинга жсона, а в го как правило стандартную либу и юзают.
Илья
Эм, и? В go есть несколько быстрых библиотек, если упираешься в парсинг берёшь любую из них, а что мерял автор я не знаю
Илья
Зачем? Я вообще не понимаю, что меряет автор
саша
Зачем? Я вообще не понимаю, что меряет автор
Код открыт, если не понимаешь, то можно зайти и самому посмотреть.
Aleksandr
что меряет понятно. сравнивать нечего
Илья
что смотреть? зачем? где методика? если инетерсно как пишут бенчи - смотрите нормальные бенчмарки, где хоть понятно что люди хотят достичь, пример тот же easyjson или benchmarksgame-team, там люди сравнивают яблоки с яблоками
саша
что смотреть? зачем? где методика? если инетерсно как пишут бенчи - смотрите нормальные бенчмарки, где хоть понятно что люди хотят достичь, пример тот же easyjson или benchmarksgame-team, там люди сравнивают яблоки с яблоками
ну так на benchmarksgame-team Golang также проигрывает всем языкам без GC, где-то выигрывает, где-то проигрывает джаве и (о боже, как неожиданно) выигрывает у всякой динамики.
Илья
к чему это вы? Да у go есть места (непример работа с деревьями) где он медленее, но при чем здесь "Ребзя, а чё это го тут так сосет"?
саша
Го - не самый быстрый яп из существующих и на это есть множество причин. Какой смысл спорить с этим мне решительно непонятно.
Илья
Го - не самый быстрый яп из существующих и на это есть множество причин. Какой смысл спорить с этим мне решительно непонятно.
я это утверждал? я сказал, что https://github.com/kostya/benchmarks/blob/master/README.md - не бенчмарк, а черт знает что
Kirill
Не бесплатно - это сколько?
Ну вообще, не сказать что я прямо обеспечу кого-то ощутимым заработком, во всяком случае сейчас. Скорее моя цель - найти человека к которому я смогу обращаться с вопросами и общаться, может каким-либо образом сотрудничать потом, нетворкинг в общем. 10-20$ в час я думаю могу оторвать от своей джуновской груди @zelenin Просто чат очень крутая штука, естественно я сюда тоже пишу\читаю, (кстати очень круто, год тому тут было по моему 600 человек, а сейчас уже больше 1.5к) но иногда расписывать полностью проблему - достаточно долго, и людям нужно дополнительно погружаться в контекст. В общем я могу задать тут вопрос вроде что использовать\что почитать\почему что-то происходит. Но если это цепочка вопросов, то мне кажется проще в личном порядке составить их и задать, чем тут спамить 5-10 вопросов подряд )
Andrey
Добрый день! А есть способ быстро распаковать msgpack неопределенной структуры? Я вижу, как оно распаковывает только первый уровень, а дальше – нет. Вложенные структуры в виде массива байтов
⏺ Vаdim
https://github.com/andlabs/ui щупал кто?)
Roman
https://github.com/andlabs/ui щупал кто?)
вот бы такую но для html рендеринга
Anonymous
хтмл надо рендерить на жс
Васильев Виктор
Anonymous
а вы не в курсе еще ?
Anonymous
хотя смотря какой хтмл
Мерль
http://golangshow.com/episode/2018/02-28-122/
Wingman
Подскажите плз Есть строка, например, "\xF0\x9F\x8F\xA0 Home" Как заставить go воспринять её как последовательность unicode, а не ASCII, символов?)
Wingman
Ага, спасибо, попробую
Aleksey
Ага, спасибо, попробую
https://golang.org/pkg/encoding/hex/ это другое, но тоже полезно
Wingman
спасибо)
Andrew
@twentydraft с праздником!
Мерль
@twentydraft с праздником!
И тебя, а с каким?
Andrew
Andrew
Fedor
День физика 7 мая же )
Andrew
День физика 7 мая же )
Ничего подобного)) главный ДФ сегодня)
Fedor
Его в день рождения Архимеда отмечают
Fedor
Хотя на физтехе неделю праздновали
Andrew
Сегодня местечковый на фф
Andrew
Мерль
🏁Александр
потому что у структуры нет "значений по умолчанию" 🙂
🏁Александр
то что между ковычками это для тегов
Васильев Виктор
Ну так ты получаешь
Васильев Виктор
просто строка то пустая
Aleksandr
а почему должно? поле же не переменная
Aleksandr
да и инициализированы поля уже
Васильев Виктор
потому что `` это просто обозначение сырой строки и все. присвоение идет за счет оператора := или =
Васильев Виктор
Инициализировать поля структуры в определении структуры нельзя
Danila
Здравствуйте. Подскажите, каким образом можно распарсить JSON такой структуры: {"errorpages" : [{"type": 404, "url":"/404.php"}, {"type":"500", "url:"/500.php"}], "id":500, "charset":"utf-8", "box": {"backend":"php", "name": "sinatra.ru"} }