無(wú)法弄清楚如何將從函數(shù)返回的接口{}轉(zhuǎn)換為結(jié)構(gòu)數(shù)組作為一些實(shí)踐的一部分,我試圖創(chuàng)建一個(gè)函數(shù),它可以采用某種類型的 2 個(gè)切片并將兩者連接起來(lái)并返回切片。代碼可以在這里找到 - https://play.golang.org/p/P9pfrf_qTS1type mystruct struct { name string value string}func appendarr(array1 interface{}, array2 interface{}) interface{} { p := reflect.ValueOf(array1) q := reflect.ValueOf(array2) r := reflect.AppendSlice(p, q) return reflect.ValueOf(r).Interface()}func main() { fmt.Println("=======") array1 := []mystruct{ mystruct{"a1n1", "a1v1"}, mystruct{"a1n2", "a1v2"}, } array2 := []mystruct{ mystruct{"a2n1", "a2v1"}, mystruct{"a2n2", "a2v2"}, } arrayOp := appendarr(array1, array2) fmt.Printf("arr: %#v\n", arrayOp) // this shows all the elements from array1 and 2 val := reflect.ValueOf(arrayOp) fmt.Println(val) // output is <[]main.mystruct Value> fmt.Println(val.Interface().([]mystruct)) // exception - interface {} is reflect.Value, not []main.mystruct}我可能有不同類型結(jié)構(gòu)的切片。我想連接它們并單獨(dú)訪問(wèn)元素。如果有任何其他方法可以實(shí)現(xiàn)相同的目的,請(qǐng)告訴我。
附加兩個(gè)數(shù)組的通用函數(shù)
婷婷同學(xué)_
2023-07-10 17:37:46