
The
08.04.2018
23:43:11
interface{} ?
На каждый метод, свой интерфейс реализующий Unmarshaller?
или можно как-то проще?
Я бы хотел что-то вроде resp := Response{Data: UsersResponse}
и туда заанмаршалить, но такое видимо не сработает?

Google

The
09.04.2018
00:09:25
Имплементировал Unmarshaler, а он валится в рекурсию :(
У кого-то есть мысли, как тактично это обыграть? Потому что методов оче много, под каждый писать свой Unmarshaler - это похоже на идиотизм. Можно, конечно, генерировать кучу {Method}Response, и эмбедить туда Error и прочее. Но, кмк, тоже не очень красиво.

Nurzhan
09.04.2018
00:44:04

The
09.04.2018
00:47:10
потому что одна и та же писанина, по сути.. :(

Nurzhan
09.04.2018
00:48:04
В го строгая типизация, думаю, без этого никак
С пустым интерфейсом в этом случае будет куча головной боли, пока сделаешь type assertion

The
09.04.2018
00:50:54
тут не столько в типизации проблема, сколько косяк в этой рекурсии. По сути, мне бы подошло как раз unmarshaler, если бы его можно было бы вызвать без рекурсии, как будто самого интерфейса нет. может какую-то прослойку пригромоздить, но пока ничего в голову не пришло.
можно на сам Response повесить Unmarshaler, а на Data какой-то свой интерфейс завернуть, но нужно на практике проверить, зайдет ли такой вариант.

Nurzhan
09.04.2018
00:53:43

The
09.04.2018
01:00:32

Slava
09.04.2018
01:01:41
через RawData можно
с другой стороны, если каждый метод возвращает разный ответ - то правильнее под каждый метод свою структуру делать

Google

The
09.04.2018
01:03:14

Slava
09.04.2018
01:03:34
что значит базовая структура ответа?
если у тебя респонс это конверт и data это просто набор битов, то передавай data в анмаршалер

Marlik
09.04.2018
01:05:44

The
09.04.2018
01:06:32

Marlik
09.04.2018
01:07:17

Nurzhan
09.04.2018
01:07:40
Если в ответе приходит либо error либо response, имеет смысл.
Если приходит и error и response, то не вижу

The
09.04.2018
01:12:04

Nurzhan
09.04.2018
01:13:05

The
09.04.2018
01:16:06
всем спасибо

Kirill
09.04.2018
02:36:50
смотрю я на это, и понять не могу, что тут вообще происходит
http://backendconf.ru/2018/author/2959

Slava
09.04.2018
04:16:27

Александр
09.04.2018
05:53:50
Добрый день! помогите разобраться с кодом https://play.golang.org/p/eRa9Y9aQh5Y
AddContractHandler при выполнении в таблице next номер контракта меняется но номер таблицы contact остаётся прежним
в документации подобное решается либо db.Save(&contact) или db.Update(&contact) оба способа пробывал

Artem
09.04.2018
06:41:16

F
09.04.2018
06:49:25

Artem
09.04.2018
06:50:45
grpc если точнее
У grpc ж не JSON объекты летают, а тут JSON, да ещё и поля именно data, error

Google

Aleksandr
09.04.2018
06:57:05

Artem
09.04.2018
06:59:05

Александр
09.04.2018
06:59:44
sqlite

Artem
09.04.2018
06:59:47
Точнее орм

Александр
09.04.2018
06:59:53
gorm

Илья
09.04.2018
07:01:11

Artem
09.04.2018
07:02:28
У тебя в форм велью точно инт?
Вот это вот r.FormValue("id")
Потому что по доке, как ты делаешь, ток с интами работает

Александр
09.04.2018
07:03:58
да но там fmt.Printf("%S",contact) выводит в логи что запрос прошёл

Artem
09.04.2018
07:09:24
Сделай так
err := DB.Save(&contact).Error
If err != nil
Panic(err)

Александр
09.04.2018
07:47:05
проблема решена
id и вправду был string, но как оказалось для orm это не проблема с ним она тоже работает. проблема была банальная. id посылался ajax . я сделал ошибку за место data: {"id": id}, посылал date: {"id": id},

Artem
09.04.2018
08:16:44

Denys
09.04.2018
10:12:37
есть ли смысл для слайса на старте задавать length ?
вот например заранее известно сколько в слайсе элементов будет
обычно capacity ставится конкретное число но length в 0
slice ссылается на array потому аллокаций не будет

Alexandr
09.04.2018
10:13:13
если эта длина не будет меняться, то логичнее использовать массив а не слайс?

Google

Илья
09.04.2018
10:14:17

Denys
09.04.2018
10:15:48
если ставить length то массив забиваться прийдется default значениями
т.е это более ресурсозатратно не?

Alexander
09.04.2018
10:16:35

Виктор
09.04.2018
10:16:38

Илья
09.04.2018
10:16:38
хм, может я неправильно понял вопрос? вопрос в make([]int,10) vs make([]int,0,10)?
или вопрос вообще в указании размера?

Denys
09.04.2018
10:17:40
make([]int, 0, 10) vs make([]int, 10, 10) ?)

Илья
09.04.2018
10:21:56
по идее, первое может быть дешевле, но без бенмарка я не уверен

Denys
09.04.2018
10:23:36
по идее одинаково, просто принт length делает
потому что underlaying array в обоих случаях создастся
с zero values
в обоих случаях заполняется я думаю
просто принт отрабатывает по разному
но это не точно потому ис прашиваю, может договоренность есть какая-то

Илья
09.04.2018
10:25:25
сходу в исходниках реализацию make не могу найти, а будет ли инициализация zero values при make([]int,0,10) или нет без бенчмарка или исходников, я не уверен

Илья
09.04.2018
10:30:14
они обещают

Daniel
09.04.2018
10:32:04

Илья
09.04.2018
10:32:30
ну, вообще, просто интересно

Google

Daniel
09.04.2018
10:32:46
тогда надо в исходники лезть

Илья
09.04.2018
10:33:13
уже там, только вот реализация сходу не гуглится :)

Daniel
09.04.2018
10:33:21
а?!

Илья
09.04.2018
10:34:45
есть сигнатуры функций с builtin, реализацию ищу :S

Egor
09.04.2018
10:35:01
заофтоплю немного
есть фанаты?) сколько тут - ниразу не слышал упоминаний, а ребята крутое дело делают)
http://golangshow.com/

Илья
09.04.2018
10:35:13
https://golang.org/doc/effective_go.html#allocation_make
new([]int) returns a pointer to a newly allocated, zeroed slice structure, that is, a pointer to a nil slice value.

Daniel
09.04.2018
10:36:36

Egor
09.04.2018
10:36:37

Илья
09.04.2018
10:37:18

Илья
09.04.2018
10:37:32
(один из админов, если я не ошибаюсь)
ну вроде ведущий голангшоу

Daniel
09.04.2018
10:38:43
как минимум @alek_si - отец основатель этого шоу
ну и я пару раз засветился

Egor
09.04.2018
10:40:19
огооонь)

Илья
09.04.2018
10:40:19

Илья
09.04.2018
10:41:23

Kirill
09.04.2018
10:44:16