我有一個函數,我想要餵食不同種類的切片,之後我想循環它們並打印它們的內容。下面的代碼工作:轉:如何獲得切片的長度功能?
func plot(data interface{}){
fmt.Println(data)
//fmt.Println(len(data))
}
func main() {
l := []int{1, 4, 3}
plot(l)
}
但是,當我取消我在其中打印片長度的線,我得到一個錯誤說invalid argument data (type interface {}) for len
。
任何想法我將如何能夠獲得切片的長度,以便我可以循環它?
@每個問題CeriseLimón不同的數據類型不同的功能的利弊「我要送不同種類的切片」。 – Adrian
如果參數是一個空的接口,你必須使用'reflect'包來做你想做的事。請參閱https://golang.org/pkg/reflect。你可能要考慮如何定義,定義了執行任何操作,你需要在你進入。此外, –
如果你使用不同種類的切片工作對象執行方法的一個特定的接口,你必須已經使用反射或斷言他們具體類型。你如何使用'data'已經無法獲得長度? – JimB