Size: a a a

2020 April 18

C

Calculon in Go-go!
Если функция нам вернула мапу без ошибки, мы ожидаем что с ней можно работать
источник

C

Calculon in Go-go!
проверять мапу на nil?  если мы уже проверили ошибку на nil
источник

RS

Roman Sharkov in Go-go!
ziggy lucid
тут же вопрос был про то, можно ли возвращать nil, а не ошибку "не найдено"
зачем проверять результат на корректность? если ошибки нет, то результат готов к применению однозначно, даже если там пустой массив

а кто куда там будет мутировать - это дело десятое
ещё-раз, нельзя на всё смотреть принципиально, везде свои trade-off’ы.
Мой вопрос по прежнему актуален, зачем лишняя аллокация?
источник

zl

ziggy lucid in Go-go!
Roman Sharkov
нет. поясняю:

func F(t *T) *T

почему F принимает указатель? причин может быть несколько:
- копировать T дорого, поэтому ссылкой передаём
- мы хотим мутировать t в F
- t опциональна, её необязательно передавать
- любая комбинация из выше перечисленных

то-же самое и с возвратным указателем. Нам можно его мутировать? Или нам его дали ссылкой дабы не копировать? и т.д.

func F(t Nil | *T) *T // t is optional
func F(t *T) *T       // t is required, it cannot be “nil”
func F(t *T) Nil | *T // t is required, result might be absent
если значение вернулось, то источник к нему уже не имеет доступа, а только приемник, иначе это гонка. так ведь?
источник

zl

ziggy lucid in Go-go!
именно в виде указателя
источник

RS

Roman Sharkov in Go-go!
Calculon
проверять мапу на nil?  если мы уже проверили ошибку на nil
it рили рили depends
источник

RS

Roman Sharkov in Go-go!
ziggy lucid
если значение вернулось, то источник к нему уже не имеет доступа, а только приемник, иначе это гонка. так ведь?
нет, не так. Любой API по умолчанию для однопоточного испольвозания
источник

zl

ziggy lucid in Go-go!
Roman Sharkov
ещё-раз, нельзя на всё смотреть принципиально, везде свои trade-off’ы.
Мой вопрос по прежнему актуален, зачем лишняя аллокация?
вон я выше тоже столкнулся - отличная библиотека, а на гонку не проверишь - темная магия unsafe, лишние аллокации
лучше делать очевидно
источник

IK

Ilya Kaznacheev in Go-go!
Господа, важный вопрос:
Gorilla или Chi?
источник

IK

Ilya Kaznacheev in Go-go!
Хочу роутинг для своей либы сделать, чтобы люди могли в свое приложение встраивать. Но с обоими работал в относительно спокойных проектах, без экзотики
источник

VM

Vladislav Milenin in Go-go!
Ilya Kaznacheev
Господа, важный вопрос:
Gorilla или Chi?
gorilla
источник

RS

Roman Sharkov in Go-go!
ziggy lucid
вон я выше тоже столкнулся - отличная библиотека, а на гонку не проверишь - темная магия unsafe, лишние аллокации
лучше делать очевидно
again, ит депендс
источник

Y

Yes in Go-go!
Всем хай. В го новенький, пишу элементарный бложик на нем.  Взял гориллу для роутинга и столкнулся с проблемой: при переходе на edit и delete + id поста статические файлы становятся недоступны, хотя на других страницах все ок. Причем в хроме видно, что у js файлов 404, а у css {canceled}.
источник

Y

Yes in Go-go!
источник

VM

Vladislav Milenin in Go-go!
Статические файлы должны отдаваться nginx’ом
источник

A

Alex in Go-go!
А в го можно как-нибудь считать результат запроса к бд в массив? Чтобы было типа такого:
users := new([]int)
_ = db.QueryRow("SELECT user_id FROM users_activities WHERE event_id=?", eventId).Scan(&users)
источник

C

Calculon in Go-go!
Alex
А в го можно как-нибудь считать результат запроса к бд в массив? Чтобы было типа такого:
users := new([]int)
_ = db.QueryRow("SELECT user_id FROM users_activities WHERE event_id=?", eventId).Scan(&users)
Да, Query()
Отдает rows
for rows.Next() { rows.Scan(...) }
источник

A

Alex in Go-go!
Calculon
Да, Query()
Отдает rows
for rows.Next() { rows.Scan(...) }
Вот я и хотел избежать этого как-нить) А так мне нужно будет append'ить в массив для каждой записи?
источник

C

Calculon in Go-go!
Alex
Вот я и хотел избежать этого как-нить) А так мне нужно будет append'ить в массив для каждой записи?
Да
источник

C

Calculon in Go-go!
Зачем этого избегать?
источник