Инициализировать нужно переменную session, функцию просто вызвать. Но у вас что то не так с архитектурой. session должна существовать в пределах одного Request, ее не следует объявлять глобально и делать доступной для всех хендлеров. Следует или вызывать последовательно, в рамках одного request, checksession() потом RenderMainAdmin(), такое называется middleware и здесь не хватит меcта для объяснений. Или, что проще, сделать "session, err := store.Get(r, "infoUs")" и использовать "id := session.Values["id"]" полученную session все внутри RenderMainAdmin().
Session не инициализирована, а только объявлена, а RenderMainAdmin пытается с ней работать. checksession() должна быть гарантированно вызвана вначале любых манипуляций с session. Например при инициализации пакета в init(). Или просто проверьте по тексту, что бы вызов checksession() был первым.
Kagtaviy Это потому что := в Go короткая форма декларации одновременно объявляющая и присваивающая переменную, а переменная уже объявлена глобально, нужно только = присвоить. Дополнил ответ.
Да декларировано вроде правильно, но в какой последовательности вы вызываете функции? К моменту вызова Hgetacc(), client должен быть инициализирован, то есть dbconnect() уже вызвана
Kagtaviy Видимо такого client нет, а вы пытаетесь получить от него Result(). Для начала убедитесь, что вы уже сделали client = redis.NewClient(&redis.Options{
dendinis Серьезно. Контакты маскируются, пазы выкусываются, мамкин биос перешивается. Я сам лично себе такую машину собрал. Прекрасно работает, чуть уступает i5.
Не сбивайте человека с толку. Там нет ./configure и makefile нет . Потому что для cmake сделано у которого вообще другая процедура установка. А в BUILDING.txt предлагается процедура не тривиальная даже для cmake. Действительно сложный пакет, его лучше пакетным менеджером ставить.
Олексiй Чечель В принципе вы можете сделать работу за devops при помощи команды go generate
директивой вроде //go:generate sed s/SELF/TrueImportPathObtainedWithPWD/
мне лично такое не нравится, лучше написать в README
nirvimel На Go в пару строк можно писать в сетевое соединение прямо по мере фильтрации, что избавляет от RAM буфера для хранения выборки и дает прирост производительности для сетевого сервиса. На С так конечно тоже можно но не в пару строк.
bernex takeFromData нужен чтобы из массива данных отбирать годные в канал для переработки. Функция запускается дважды(трижды, четырежды) в отдельных потоках и каждой передается по половине массива. В третьем потоке агрегатор читает из канала и формирует результат. Видите закодить такое на Go проще чем задокументировать.))