
Slayer
13.12.2017
11:06:19
nil и все
делал и методом - через анонимное поле структуры один фиг не работает

Aleksandr
13.12.2017
11:10:05
правильно. само соединение-то ты не создаешь
не, db должен быть не nil. Но соединения все равно нет

Google

Slayer
13.12.2017
11:10:54
нет, в базе создаю db, err = sql.Open("postgres", psqlInfo) где db ссылка на DB в структуре

Aleksandr
13.12.2017
11:10:55
демку сделай
https://play.golang.org/p/rz017Q2cFC
ты что-то совсем не то написал

Slayer
13.12.2017
11:12:08
вся суть в том - как через анонимное поле в одной структуре - получить доступ к другой, поля видно но они явно копируются, делаю указателем * и тоже пусто

Aleksandr
13.12.2017
11:13:02
https://play.golang.org/p/k9JcWuAlq5
все верно
не присвоишь, будет nil

Slayer
13.12.2017
11:14:18
в пакете database я присваиваю ему значение sql.Open, но из другого пакета не могу это значение получить

Aleksandr
13.12.2017
11:14:40

Alexey
13.12.2017
11:18:26

Slayer
13.12.2017
11:19:08
https://play.golang.org/p/0Vjy9uGiBE

Google

Slayer
13.12.2017
11:19:44
бля
не то

Aleksandr
13.12.2017
11:20:06
да, вообще

Slayer
13.12.2017
11:20:10
ща
https://play.golang.org/p/SbWy3CjTT1

Aleksandr
13.12.2017
11:26:00
найди строчку,в которой у тебя db присваивается DB

Slayer
13.12.2017
11:26:27
db.DB, err = sql.Open("postgres", psqlInfo)
в примере выше - забыл дописать

Aleksandr
13.12.2017
11:26:58
ок, а где вызывается InitDb, чтобы код отработал

Slayer
13.12.2017
11:27:07
в main

Aleksandr
13.12.2017
11:27:35
ну вот после вызова в maiт все и заработает

Александр
13.12.2017
11:28:14

Slayer
13.12.2017
11:28:26
a := database.BaseStruct{}
a.Initialize(cfg.Database.Host, cfg.Database.Port, cfg.Database.User, cfg.Database.Password, cfg.Database.DBName)

Aleksandr
13.12.2017
11:28:31

Александр
13.12.2017
11:29:00

Aleksandr
13.12.2017
11:29:14

Vany
13.12.2017
11:29:24
Кто нибудь пробовал в горме в объекте держать ссылку на базу, чтобы делать obj.GetRelate() или obj.Save() ?
Грабли могут быть или все давно так делают?

Aleksandr
13.12.2017
11:29:36
а не, есть. но не пойму причем тут это

Александр
13.12.2017
11:29:53
он думал что при встраивании оно без инициализации "наследует"
я думаю так

Google

Slayer
13.12.2017
11:30:03
ага

Александр
13.12.2017
11:30:04
типо как глобальный объект

Slayer
13.12.2017
11:30:09
именно так думал

Aleksandr
13.12.2017
11:30:16
не, так не работает

Александр
13.12.2017
11:30:34

Slayer
13.12.2017
11:31:02
делал даже *database.BaseStruct и все равно nil

Александр
13.12.2017
11:31:21

Slayer
13.12.2017
11:31:30
смотрю

Александр
13.12.2017
11:31:40
ой погоди, я твою же ссылку прислал :))
смотрю
правильный- https://play.golang.org/p/x2yyQEPdx_

Slayer
13.12.2017
11:32:22
нублин, так не честно

Slayer
13.12.2017
11:32:25
смысл я уловил
просто не будет
один хрен - явно присваивать придется

?
13.12.2017
11:33:24

Александр
13.12.2017
11:42:49
а конструкция:
var GameType Game
равносильно получается:
GameType := Game{}
что странно, в классических языках в первом случаи он должен никуда не указывать и материться
я же еще переменную не инициализировал

Maxim
13.12.2017
11:44:46

Google

Nikolay
13.12.2017
11:44:49
так ты под тип память-то выделил

Maxim
13.12.2017
11:45:03
В первом случае у тебя GameType, во втором *GameType
Если я ничего не путаю

Anatoliy
13.12.2017
11:45:18
пых загибается
он уже так долго загибается что еще детей наших может пережить :)

Nikolay
13.12.2017
11:45:18

Maxim
13.12.2017
11:45:28
Сорян

Александр
13.12.2017
11:46:44
https://play.golang.org/p/ImoMSp5Efo

Anatoliy
13.12.2017
11:46:47
А может кто посоветовать либы что умеют REST как клиенты?)

Admin
ERROR: S client not available

Nikolay
13.12.2017
11:47:06

Александр
13.12.2017
11:47:31
libcurl?
нельзя! не используй! только стандартный клиент
потеря производительности на порядок

Nikolay
13.12.2017
11:47:57

Anatoliy
13.12.2017
11:48:40
libcurl?
ну курл это и есть курл, я имел в виду нечто вроде фреймворка которому указываешь с чем он будет работать и даешь адрес куда он будет обращаться. а дальше уже выполняешь например просто campaign.Save() и если кампания создается - он делает PUT, если тебе нужно её получить - GET, ну и т.д.

Nikolay
13.12.2017
11:48:43
потеря производительности на порядок
ты будешь смеяться, но для питона это абсолютно наоборот. Если хочешь крутой асинхронный клиент - в некоторых случаях гораздо эффективнее взять libcurl + asyncio, но эту связку надо уметь готовить

Anatoliy
13.12.2017
11:49:06

Nikolay
13.12.2017
11:49:16
react.js получается

Google

Александр
13.12.2017
11:49:24
есть клиент для курла, но он такой медленный

Anatoliy
13.12.2017
11:49:42
не, мне чисто серверная нужна, клиента там нет вообще никак

Александр
13.12.2017
11:49:43
я охренел когда зающал

Anatoliy
13.12.2017
11:50:19

Aleksandr
13.12.2017
11:51:16

Nikolay
13.12.2017
11:53:03
вот и все

Anatoliy
13.12.2017
11:53:09
создаем структуру, к ней вяжем сервис, дальше указываем что надо дергать что бы внести изменения в эту стркутуру, получить её или добавить новую, ну и обработку вариантов ответа нормальную. собственно все просто, даже писать не так уж много, просто думал что нечто такое уже есть в либах, видимо нет.

Nikolay
13.12.2017
11:53:45
поэтому нет смысла этого делать, ибо и так пишется за час под твою задачу

Anatoliy
13.12.2017
11:54:43

Alex
13.12.2017
12:00:01
Кто в курсе, в 2.0 таки завезут дженерики?

Александр
13.12.2017
12:00:02
конечно меня смущает, как можно у указателя вызывать какие то методы, что за гребанная магия
g := &Game{} // *Game тип, указатель на память
g.SetName("Вася")

Aleksandr
13.12.2017
12:00:57

Alex
13.12.2017
12:01:00

Александр
13.12.2017
12:01:39
причем вызов свойства у указателя тоже не паникует

?
13.12.2017
12:01:39
всегда знал, что с указателями одни проблемы

Александр
13.12.2017
12:01:55
https://play.golang.org/p/ZwUssMV8Ay

Slayer
13.12.2017
12:02:00
но с ними и проще, если не провтыкать