@MIsternik

Работа с базой и слайсами, как правильно?

Недавно заинтересовался языком и никак не могу понять некоторые моменты.
1. Слайсы это ссылки на массимы или мх часть в памяти, значит ли это что передавать и возвращать слайссы из функций можно по значению ?
2. В sql есть Prepare. Его , как я понял, надо использовать если запрос повторяется.
Но повторения имеются в виду в цикле, перед которым мы сначала делаем Prepare а потом выполняем ? Или можно после sql.Open() при инициализации приложения "запрепейрить" запросы и потом их использовать в течении всего времени жизни приложения? Для веб-приложения, например.
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вам надо на 2 разных вопроса это разбить. Отвечаю на первый.
Да, слайсы это просто указатели, поэтому их можно передавать по значению.
https://play.golang.org/p/rVehEbb3-n

Но только для случаев, когда их длина не меняется во время работы функции. Ибо при аллокации нового куска памяти указатель изменится.
https://play.golang.org/

И даже вот так: https://play.golang.org/p/-bDHwT2Jcm

P.S. В стандартном пакете sort слайсы передаются как раз по значению.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы