Denis
item это какой тип?
Yuri
Insert(object ...interface{})
Roman
смотри сюда: mgo/bson/encode.go, функция func (e *encoder) addDoc(v reflect.Value) - дебажь ее со своими данными
Denis
Roman
да у него там косяк в данных
Roman
надо дебагом идти
Daniel
Человек, по-моему, базовых вещей не знает
Daniel
Дебаг обычно не нужен
Denis
decoder.Decode(&item) вот здесь ты в item из jsonа или чего-то еще десеарилизуешься
Denis
а item это что такое?
Denis
Yuri
Daniel
А нужен здравый смысл
Denis
Yuri
item := &object
Yuri
указатель
Denis
хорошо, а object это что?
Yuri
object ...interface{}
Denis
ммм ты меня окончательно запутал
Roman
ну вот он, слайс
Denis
ну да, я и говорю, но откуда и зачем
Yuri
ага.
Roman
передает как параметр
Denis
а все я понял что ты не понимаешь, @Daring_junior
Roman
дурная голова mgo покоя не дает :)))
Denis
смотри в mgo.Insert(docs ..interface{}) это для того
Yuri
Denis
для того чтобы можно было передать несколько документов и их пачкой сохранить. например mgo.Insert(Item{}, Item{}, Item{})
Denis
тебе не нужно нигде указывать ...interface{}. укажи item свой тип
Roman
надо for _, item:=range object
Yuri
Игорь Пинчук
А подскажите, пожалуйста - какой сейчас code style наиболее распространенный?
Denis
Игорь Пинчук
go fmt ?!
эт то да) но почитать именно)
Roman
Ivahaev
https://github.com/golang/go/wiki/CodeReviewComments
Два
Denis
Insert(object...)
не не не, ты не понял, у него документ один, но он пытается его десеарилизовать сначала из JSON и указывает тип переменной ...interface{}
Roman
ой е, так то да, жопа будет
Yuri
Yuri
да именно так
Roman
а надо просто var object interface{}
Denis
в общем укажи тип переменной для Item тот тип который ты и пытаешься сохранить, как он там у тебя называется
Denis
да, либо так, либо вместо interfcae{} твой тип
Yuri
а если в метод два разных типа могу прийти. тогда если правильно понял: ( t , tt )
Roman
var object interface{}; json.Decode(object); mgo.DB("жопа").Clone().Collection("с_ручкой").Insert(object)
Yuri
ок.
Yuri
спс.
Yuri
Допинаю все что Вы мне сказали.
Yuri
все работает
Yuri
спс
Denis
👍
Yuri
теперь я пошел int{} vs …int{} смотреть
Игорь Пинчук
Вопрос... Статического анализиатора под goland пока не существует?
Cat
Маjко
Зачем там факториал я так и не понял
Васильев Виктор
Васильев Виктор
типа statickcheck или в сборке megacheck или еще больше gometalinter но там не только статический но и стилистический и другие
Васильев Виктор
Просто го изначально разработан чтобы давать по рукам так что там много не насобираешь
Tigran
Игорь Пинчук
Просто по факту даже обращение с выходом за предела слайса не детектится
Игорь Пинчук
грустно же
Маjко
Игорь Пинчук
panic: runtime error: index out of range
Васильев Виктор
Так....это слайс же динамическая штука
Васильев Виктор
туда и докинуть можно
Игорь Пинчук
Согласен. Но простейший статик анализатор может указать по крайне мере ворнингом
Игорь Пинчук
Что может выйти обращение за предел
Васильев Виктор
Он может путем глбокого изучения кода узнать что болше нигде в него не добавляют и тогда проверить границы
Васильев Виктор
но это немного глупо
Игорь Пинчук
Нуу... как глупо. Я просто видел похожие проблемы в других языках и оно детектилось)
Просто думал есть инструмент и тут.
Васильев Виктор
Васильев Виктор
я сам пользуюсь металинтером
Васильев Виктор