Anatoly
👍 Как прототипы в JS Третий способ отсюда https://habrahabr.ru/post/332122/
Вложить чужую структуру в свою структуру? Сработает, конечно, но чтот не то.
🏁Александр
Народ, а иницилизацию бд в фабрике application это же не совсем гуд?
🏁Александр
как параметр передать в фабрику или же внутри сделать
ainu
ofc
ainu
щас
ainu
Ох и правда, либо делать обертку структуры либо делать type MyRouter mux.Router
ainu
вот тут разжевано https://stackoverflow.com/questions/28800672/how-to-add-new-methods-to-an-existing-type-in-go
Anonymous
Всем привет!
Anonymous
Сразу вопрос: как объявить тип слайса типов, которые private в каком-то не моём пакете?
Anonymous
https://github.com/deckarep/golang-set
Anonymous
Хочу вот это поюзать, а не знаю как слайс объявить.
Anonymous
Без type inference надо, через полный var
Anonymous
Хочу слайс этих самых set'ов. Нечто вроде var maps []%что тут писать?%
Alexey
эээ
Oleg
ага хД
Oleg
тип слайса типов?
Alexey
а как мапу ты обычно инициализируешь?
Anonymous
Простите, set'ов
Anonymous
Anonymous
Тип множества там запривачен
Anonymous
https://github.com/deckarep/golang-set/blob/master/set.go#L41
Anonymous
А, всё, отбой
Anonymous
Там есть интерфейс type Set interface :D
Oleg
😄
Alexey
Ну иплементирй его, если нужно)
Anonymous
Вообще это очень странно, что в самом языке нет множеств
Anonymous
ВРоде прям совсем фундаментальная структура
Anonymous
А есть ещё какие-нибудь каналы и конференции о Golang здесь в Телеграме? Я недавно зарегался
Anonymous
Тебе нужна инфа по языку? статейки почитывать?
Этого добра я и сам нарыл вот тут https://github.com/dariubs/GoBooks :) Просто интересно как Телеграм представлен Golang'ом
Oleg
как обычный язык программирования
Oleg
есть множество каналов по языкам пр., и всюду обсуждают что-нибудь:)
Мерль
Yura
А кто каналом рулит? Если я предложу хантеру в него запостить, к кому ему обращаться?
Yura
Спасибо :-)
Anatoly
вот тут разжевано https://stackoverflow.com/questions/28800672/how-to-add-new-methods-to-an-existing-type-in-go
Ну не то что бы разжевано, причины такого поведения компилятора не раскрыты, нет концептуальной идеи за этим всем.
Anatoly
Да, дело в этом
Anatoly
Я же не спорю
Anatoly
Мне интересно какой смысл в этом ограничении?
Alexey
эм, а где вы кроме JS видели, что в объект можно добавлять методы находясь вне самого namespace`а?
Anatoly
C#
Alexey
Неужели потом можно повсюду этот метод реюзать?
Alexey
Звучит ужасно если честно)
Anatoly
Да, повсюду
Anatoly
Почему ужасно? Звучит круто, если уметь применять. Я вот ничего плохого не вижу написать себе пару удобных хелперов и получать по ним подсказоньки после точки
Anatoly
Посмотри видос и почувствуй силу: https://www.youtube.com/watch?v=YvRm-0jrN8c
Alexey
Почему ужасно? Звучит круто, если уметь применять. Я вот ничего плохого не вижу написать себе пару удобных хелперов и получать по ним подсказоньки после точки
Звучит ужасно, также ужасно как и глобальные переменные (которые кстати принято юзать в го). Если вам нужен monkey patch, то это не про го. Но если очень хочется, то вот https://github.com/bouk/monkey 😉
Anatoly
Это вообще не то
Alexey
Ну это в runtime работает только)
Anatoly
Зачем мне патчить чужие методы еще и через рефлексию? Мне нужно просто написать свой метод, какой-то чужой структуре. Но я понял, гоувей - ембединг. Может быть боялись, что кто-то работая с одним проектом подумает, что есть нативный для библиотеки метод, а потом начнет эту библиотеку использовать в другом проекте, а этого метода не окажется и несчастный программист упадет с нулл поинтер экцепшн.
Anonymous
На Go надо кодить с чистой головой. А если уже успел покодить на других языках, то иногда хочется, чтобы у Go реализовывал побольше ништяков из других языков...
Anatoly
Но вот отсутствие нормальных энамов я понять не могу.
Alexander
и д***в!
Anonymous
и д***в!
А ну быстро удалил запрещённое слово (или закрыл звёздочками), а то человек-админ удалит тебя 😄
Alexander
норм?)
Anonymous
👍😂
Alex
д6ков
Alex
g5c
Anatoly
Их нет
Anonymous
ну... а чем iota не угодил ?)
Anonymous
не совсем, конечно enum. Но мимикрирует :)
Alex
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/ кидали уже?
Anonymous
https://marcan.st/2017/12/debugging-an-evil-go-runtime-bug/ кидали уже?
Есть на русском? Посмотрел картинки - битая ОЗУ, какие-то картинки нагрева. Это чо, во всём Go виноват? 😂
Alex
Есть на русском? Посмотрел картинки - битая ОЗУ, какие-то картинки нагрева. Это чо, во всём Go виноват? 😂
so how was this breaking Go? Well, OR with 0 isn’t really a no-op. Since orq is not an atomic instruction, what really happens is the CPU reads the memory address and then writes it back. This creates a race condition. If other threads are running in parallel on other CPUs, orq might effectively wind up undoing a memory write that occurs simultaneously. Since the write was out of the stack bounds, it was likely intruding on other threads’ stacks or random data, and, when the stars line up, undoing a memory write. This is also why GOMAXPROCS=1 works around the issue, since that prevents two threads from effectively running Go code at the same time.
🏁Александр
https://www.youtube.com/watch?v=dqxqbvyOnMY&feature=youtu.be
🏁Александр
занятия на выходые - переписать на гоу :)
Anatoly
На пару выходных
Anatoly
Выходных жизней, ага. Заодно и phd можно получить)
Pawel
Чего пример? Экстендед метода? Короч берешь чужую структуру и фигачишь к ней свой метод, так же как к своей. В C# я очень любил такие дела делать - удобно. Для чего? Что бы в функцию не передавать первым параметром ссылку на структуру.
для С# это прокатывает потому, это статическое расширение, а не монкипатчинг, и потому что в С# нет утиной типизации. Если такую фичу добавить в Го, то из-за утиной типизации Го станет таким же говном, как джаваскрипт