John
ну с оговорками
a, (b, c) = 1, return_tuple()
John
в любом случае в голанге так не выйдет
Stepan
Всем спасибо)
Artem
Oleh
Илья
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
щас бы спрашивать зачем нужны дженерики
Anonymous
ну гоферам ничего не нужно это понятно
Алексей
лол, опять дженерики обсуждают
Anonymous
а помимо очевидных контейнеров дженерики нужны хотябы чтобы сделать нормальный тип возвращаемого значения библиотечных функций
Aleksandr
коллеги, предыдущий многочасовой спор остановлен административно
Anonymous
я бы поспорил является ли нужность дженериков спором вообще...
Chebyrash
саша
Антон
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
синтетические тесты обычно сами по себе плохие. чисто пописькомерить норм, но когда дело доходит до реальных кейсов, все кардинально меняется.
Илья
да там сравнивается все подряд со всем подряд
Илья
и еще и код внутри разнообразный
Илья
Эм, и? В go есть несколько быстрых библиотек, если упираешься в парсинг берёшь любую из них, а что мерял автор я не знаю
саша
Илья
Зачем? Я вообще не понимаю, что меряет автор
Aleksandr
что меряет понятно. сравнивать нечего
Илья
что смотреть? зачем? где методика? если инетерсно как пишут бенчи - смотрите нормальные бенчмарки, где хоть понятно что люди хотят достичь, пример тот же easyjson или benchmarksgame-team, там люди сравнивают яблоки с яблоками
саша
Илья
к чему это вы? Да у go есть места (непример работа с деревьями) где он медленее, но при чем здесь "Ребзя, а чё это го тут так сосет"?
саша
Го - не самый быстрый яп из существующих и на это есть множество причин. Какой смысл спорить с этим мне решительно непонятно.
Илья
Kirill
Не бесплатно - это сколько?
Ну вообще, не сказать что я прямо обеспечу кого-то ощутимым заработком, во всяком случае сейчас. Скорее моя цель - найти человека к которому я смогу обращаться с вопросами и общаться, может каким-либо образом сотрудничать потом, нетворкинг в общем. 10-20$ в час я думаю могу оторвать от своей джуновской груди
@zelenin
Просто чат очень крутая штука, естественно я сюда тоже пишу\читаю, (кстати очень круто, год тому тут было по моему 600 человек, а сейчас уже больше 1.5к) но иногда расписывать полностью проблему - достаточно долго, и людям нужно дополнительно погружаться в контекст. В общем я могу задать тут вопрос вроде что использовать\что почитать\почему что-то происходит.
Но если это цепочка вопросов, то мне кажется проще в личном порядке составить их и задать, чем тут спамить 5-10 вопросов подряд )
Andrey
Добрый день!
А есть способ быстро распаковать msgpack неопределенной структуры? Я вижу, как оно распаковывает только первый уровень, а дальше – нет. Вложенные структуры в виде массива байтов
⏺ Vаdim
https://github.com/andlabs/ui
щупал кто?)
Roman
Anonymous
хтмл надо рендерить на жс
Chebyrash
Васильев Виктор
Anonymous
а вы не в курсе еще ?
Anonymous
хотя смотря какой хтмл
Мерль
http://golangshow.com/episode/2018/02-28-122/
Wingman
Подскажите плз
Есть строка, например, "\xF0\x9F\x8F\xA0 Home"
Как заставить go воспринять её как последовательность unicode, а не ASCII, символов?)
Aleksey
Wingman
Ага, спасибо, попробую
Wingman
спасибо)
Andrew
@twentydraft с праздником!
Мерль
Andrew
Andrew
Fedor
День физика 7 мая же )
Fedor
Его в день рождения Архимеда отмечают
Fedor
Хотя на физтехе неделю праздновали
Andrew
Сегодня местечковый на фф
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"}
}