jjzjj

AppendSlice

全部标签

pointers - 将 reflect.AppendSlice 的结果分配给指针

我在将这段代码(实际上是在slice上左旋转)翻译成接受interface{}作为输入参数的更通用的版本时遇到了麻烦。funcrotate(a*[]int,iint){x,b:=(*a)[:i],(*a)[i:]*a=append(b,x...)}我在期末作业上遇到了麻烦:funcrotateSlice(ainterface{},iint){v:=reflect.ValueOf(a)x,b:=v.Elem().Slice(0,i),v.Elem().Slice(i,v.Elem().Len())*a=reflect.AppendSlice(b,x)}错误信息是invalidindire

go - 如何 reflect.New slice 并将其 reflect.AppendSlice 到源 slice

我想reflect.New一个[]interface{},比如[]int,并将它追加到另一个slice中。我的代码肯定有错误,但我不知道如何改正,也不知道如何深入理解reflect.New和reflect.AppendSlice的用法。packagemainimport("fmt""reflect")funcmain(){vara[]intvarvaluereflect.Value=reflect.ValueOf(&a)if!value.CanSet(){fmt.Println("gohere",value.CanSet())value=value.Elem()fmt.Println(