Ответы пользователя по тегу Go
  • Есть ли подводные камни в использовании ссылок Golang в горутинах?

    @Zolg
    но открыл для себя особенность, что если передавать ссылку в горутину, в горутине будет самое последнее значение переменной в цикле
    это не 'особенность', это основная фича ссылок. В любом ЯП.

    Сама переменная - это некоторая область в памяти, в которой записано то, что в этой переменной содержится.
    При передаче параметра по значению ('без ссылок') создается еще одна такая же область в памяти, куда копируется содержимое исходной переменной. И код вызванной функции работает уже со своей копией.

    При передаче параметра по указателю ('с сылками') копия переменной не создается, а в вызываемую функцию передается адрес (указатель, ссылка) области памяти в которой лежат оригинальная переменная. И вызванная функция работает уже с ним.

    Очевидно, что когда два куска кода одновременно могут писать читать в одно и то же место памяти - они мгновенно 'видят' изменения, вносимые каждым.

    И, естественно, в общем случае без дополнительных усилий это не thread/goroutine/etc. safe. Причем в случае, если сама переменная - что-то посложнее int, то эффект от такой одновременной работы может быть гораздо более занятным, чем просто изменение значения.
    Ответ написан
    2 комментария
  • Как на голанге работать со связанными моделями?

    @Zolg
    пакет это целостная сущность
    если у вас два пакета не могут работать друг без друга - это один пакет
    Ответ написан
    5 комментариев