Составной литерал использует неопределяемые поля - PullRequest
0 голосов
/ 06 февраля 2019

Я работаю с новым официальным драйвером mongodb для golang.Я создал один сложный запрос, чтобы вставить данные в базу данных mongo, а затем отсортировать их по значению элемента.Я использую фильтр, в котором я создал тип bson, используя: -

filter := bson.D{{"autorefid", "100"}}

Но он показывает предупреждение:

примитив. В составном литерале используются поля без ключа

Предупреждения создают беспорядок в моем коде.

1 Ответ

0 голосов
/ 06 февраля 2019

Предупреждения можно остановить, установив флажок проверки в значение false.

$ go doc cmd/vet

По умолчанию все проверки выполняются.Если для каких-либо флагов явно задано значение true, запускаются только эти тесты.И наоборот, если какой-либо флаг явно установлен в false, только эти тесты отключаются.Таким образом, -printf = true запускает проверку printf, -printf = false запускает все проверки, кроме проверки printf.

Unkeyed composite literals

Flag: -composites

Composite struct literals that do not use the field-keyed syntax.

Но предупреждение связано с тем, что имя ключа не указывается при установке значения вprimtive.E struct.

Установка ключей для primitive.E struct удалит предупреждающие сообщения.Например,

filter := bson.D{primitive.E{Key: "autorefid", Value: "100"}}

Примитив пакета содержит типы, аналогичные примитивам Go для типов BSON, которые могут не иметь прямого представления примитивов Go.

type E struct {
    Key   string
    Value interface{}
}

Eпредставляет элемент BSON для D. Он обычно используется внутри D.

Для получения дополнительной информации взгляните на примитив. E

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...