에서 인터페이스의 배열의 덤프이 같은 인터페이스의 배열이golang
이름을
ahmad
reza
this과 같은 것이지만 배열이 필요합니다.
업데이트
내가 테스트 인터페이스를 덤프하고 싶지 않아 ...
내가 모든 인터페이스를 덤프합니다.
package main
import (
"fmt"
"reflect"
)
type Test struct {
Name string
}
func main() {
result := []Test{
Test{Name: "ahmad"},
Test{Name: "reza"},
}
dump(result)
}
func dump(datasets interface{}) {
items := reflect.ValueOf(datasets)
if items.Kind() == reflect.Slice {
for i := 0; i < items.Len(); i++ {
item := items.Index(i)
if item.Kind() == reflect.Struct {
s := reflect.ValueOf(item)
t := reflect.TypeOf(item)
for j := 0; j < s.NumField(); j++ {
fmt.Println(t.Field(j).Name)
}
}
}
}
}
이와 비슷한 것입니다. 그러나 결과는 다음 정말 더 자세한 정보를 사용할 수
Name
Name
당신은'Test' 객체의 배열을 가지고 있습니다. 정말로이 아이템들을 어떤 인터페이스로 취급해야합니까?샘플에서는 반드시 필요한 것은 아니지만 단지 예제 일 뿐이므로 일부 설명이 도움이됩니다. 이것이 정말로 당신의 코드를 대표한다면 100 %는'result [i] .Name'을하고 반사 나 인터페이스를 전혀 건드리지 말아야합니다. – evanmcdonnal
@evanmcdonnal Test 개체는 샘플 용입니다. 어떤 인터페이스가 덤프 함수에 전달 될지 모르겠습니다. – ahmdrz