@gogolang

Страница 737 из 1630
Dmitry
09.01.2018
16:12:25
Где посмотреть, как устроена мапа внутри го? Я имею в виду исходный код

Daniel
09.01.2018
16:12:41
в гугле

Quet
09.01.2018
16:13:43
Где посмотреть, как устроена мапа внутри го? Я имею в виду исходный код
исходники го не дают с официального сайта скачать? )

Dmitry
09.01.2018
16:14:07
да, я нашел уже

Google
Dmitry
09.01.2018
16:14:09
спасибо

Slach
09.01.2018
16:31:37
https://play.golang.org/p/JAf0H8qgxIl Народ, а вот кто как бы реструктурировал такой код? покритикуйте пожалуйста с одной стороны можно конечно декомпозировать на несколько функций, но тогда придется return err делать в этих функциях и делать return чтобы сработал defer в основной =) я понимаю что CH не транзакционный но я просто хочу подобный подход применить для транзакционности в PgSQL и MySQL в дальнейшем

xPushkin
09.01.2018
16:36:06
Друзья, насколько правильно данное решение - мап функций с ресивером https://play.golang.org/p/zGcPYPkeNbx

Daniel
09.01.2018
16:36:43
нормально, только непонятно, зачем

xPushkin
09.01.2018
16:37:27
Мне удобно хранить функции в мапе чтобы по string key их вызывать

Daniel
09.01.2018
16:37:42
чтобы что?

ну вот реально - чтобы что?

Slach
09.01.2018
16:38:00
у тебя этот string key откуда то снаружи передается?

Daniel
09.01.2018
16:38:25
Чтобы не делать switch ?
свитч будет быстрее

xPushkin
09.01.2018
16:39:13
свитч будет быстрее
Lookup в мапе О(1)

Daniel
09.01.2018
16:39:24
и проблемы будут отловлены при компиляции, а не при работе

Google
xPushkin
09.01.2018
16:40:13
и проблемы будут отловлены при компиляции, а не при работе
Я проверяю если нужный метод есть и если нету то отвечаю клиенту ошибкой. Если есть, то он достаётся из мапы и исполняется. Быстрее ведь чем свитчом?

Daniel
09.01.2018
16:42:56
медленнее

xPushkin
09.01.2018
16:43:20
Поясните пожалуйста почему, если не сложно.

Mush
09.01.2018
16:45:28
инструкция в коде скомпилирована, а залезть в мапу - это динамисческий доступ

xPushkin
09.01.2018
16:46:37
Mush
09.01.2018
16:46:56
да, он при этом не лезет в переменную типа мап

xPushkin
09.01.2018
16:47:49
да, он при этом не лезет в переменную типа мап
Но ведь медленнее сравнить 20 раз чем один раз посмотреть в мапе (?)

Mush
09.01.2018
16:48:03
вряд ли, это в коде выглядит коротко

Marlik
09.01.2018
16:48:05
Хм, чот фигня какая-то, ЧЯДНТ? gox -build-toolchain Программа 'gox' на данный момент не установлена. Вы можете установить её, выполнив: sudo apt install gox

Alex
09.01.2018
16:48:51
Интересно, какие значения будут

Slach
09.01.2018
16:49:20
Да
снаружи в смысле за пределы процесса?

xPushkin
09.01.2018
16:53:31
Сделай бенчмарк и поделись :)
Я думал может у кого уже есть опыт )

Что быстрее - свитч на 100 кейсов или мапа с функциями

Mush
09.01.2018
16:54:24
существенной разницы быть не должно

но немножко выйдет вперед свитч

Slach
09.01.2018
16:54:41
Я думал может у кого уже есть опыт )
единственный вариант map[string]func оправданный это только если string передается откуда то снаружи процесса

xPushkin
09.01.2018
16:55:00
Daniel
09.01.2018
16:56:01
потому, что смещение для джампа задается статически, и, скорее всего, соответствующий код будет в кеше

Страница 737 из 1630