Я не могу вставить большой массив в свою коллекцию; У меня проблема с типом interface{}
.
Вот код:
collections = getSession().DB("go").C("comments")
func BenchmarkBulkInsert(data interface{}) {
bulk := collections.Bulk()
bulk.Insert(data...)
_, bulkErr := bulk.Run()
if bulkErr != nil {
panic(bulkErr)
}
fmt.Printf("\n - %d comments inserted!", reflect.ValueOf(data).Len())
}
Я не могу создать приложение. Сообщение об ошибке следующее:
cannot use data (type interface {}) as type []interface {} in argument to bulk.Insert: need type assertion
Я использую пакет «gopkg.in/mgo.v2» для подключения к базе данных Mongo, и data
— это массив, когда я вывожу его на консоль.
? можешь мне объяснить?
изменить сигнатуру функции func BenchmarkBulkInsert(data ...interface{})
Вы должны использовать вариационная функция Таким образом, вы должны изменить входной параметр с этого:
func BenchmarkBulkInsert(data interface{})
к этому :
func BenchmarkBulkInsert(data ...interface{})
эй, не могли бы вы сказать мне, правильно ли написан метод, который я использую для вставки массива?
Да, все в порядке.
Возможно, вы захотите использовать
data ...interface{}
вместоdata interface{}
.