2 回答

TA貢獻(xiàn)1816條經(jīng)驗(yàn) 獲得超4個(gè)贊
發(fā)生這種情況是因?yàn)閇]models.Meter和[]interface{}對(duì)于 Go 編譯器來說是兩種不同的類型。
使用interface{}通常不是最佳實(shí)踐。最好定義自己的類型并使用它。
話雖如此,針對(duì)您的情況最快的解決方案應(yīng)該是使Write函數(shù)成為可變函數(shù)。就像下面的例子一樣。
https://play.golang.org/p/KzzFMAjQvRa
func Write(myArray ...interface{}) (error) {
fmt.Printf("Slice: %v\n", myArray)
// Insert into DB
return nil
}

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您先復(fù)制到 [] 接口實(shí)例,這是可能的
func main() {
? ?// Copy from your explicit type array
? ?var interfaceSlice []interface{} = make([]interface{}, len(models.Meter))
? ?for i, Modelvalue := range models.Meter {
? ? ? ?interfaceSlice[i] = Modelvalue
? ?}? ??
? ?influxClient.Write(interfaceSlice)
}
- 2 回答
- 0 關(guān)注
- 185 瀏覽
添加回答
舉報(bào)