我有一個類型的切片People,我需要將此切片傳遞給獲取類型“interface {}”的函數。People 類型“實現”了一個名為 的接口HasCustomField,但我無法在函數內進行類型轉換,就像我正在做的那樣:type HasCustomField interface { GetCustomField() map[string]interface{}}type People struct { Name string customField map[string]interface{}}func (c *People) GetCustomField() map[string]interface{} { if c.customField == nil { c.customField = make(map[string]interface{}) } return c.customField}func main() { users := []People{{Name:"Teste"},{Name:"Mizael"}} ProcessCustomField(&users)}func ProcessCustomField(list interface{}) { if list != nil { listVal := reflect.ValueOf(list).Elem() if listVal.Kind() == reflect.Slice { for i:=0; i<listVal.Len(); i++ { valueReflect := listVal.Index(i).Interface() objValueFinal, ok := valueReflect.(HasCustomField) if ok { fmt.Println("OK") } else { fmt.Println("NAO OK") } }}結果總是“不正?!?,我無法進行轉換,我也嘗試了其他幾種方法,包括GetCustomField()通過反射調用該方法,但不成功。
添加回答
舉報
0/150
提交
取消