我想下面實現的東西。爲什麼golang結構陣列不能分配給接口陣列
package main
import (
"fmt"
)
type MyStruct struct {
Value int
}
func main() {
x := []MyStruct{
MyStruct{
Value : 5,
},
MyStruct{
Value : 6,
},
}
var y []interface{}
y = x // This throws a compile time error
_,_ = x,y
}
這給出了一個編譯時錯誤:
sample.go:21: cannot use x (type []MyStruct) as type []interface {} in assignment
爲什麼這是不可能的。如果不是有沒有任何其他方式在Golang持有通用對象數組?
由於*一般類型*數組不等於*一個struct *陣列。只需使用'var y interface {}'而不是數組。類型'interface {}'可以用來存儲** Golang中的任何類型的變量**。 – putu
@putu由於改變接口{}解決了這個問題 – Anuruddha
見https://golang.org/doc/faq#convert_slice_of_interface –