0
struct
을 취하는 제네릭 함수를 작성하려고하는데 주어진 필드의 값이 0이 아닌지 확인합니다.Go에서 구조 필드가 0이 아닌 것을 확인하십시오.
이 제 기능입니다 :
func CheckRequiredFields(kind string, i interface{}, fields ...string) error {
for _, field := range fields {
value := reflect.ValueOf(i).FieldByName(field)
if value.Interface() == reflect.Zero(value.Type()).Interface() {
return fmt.Errorf("missing required %s field %s", kind, field)
}
}
return nil
}
과 struct
이 i
로 전달되는 경우 그것은 잘 작동하지만, i
이 struct
에 대한 포인터 인 경우 실패합니다.
전달 된 값이 포인터 인 경우 인터페이스의 값을 어떻게 반영 할 수 있습니까?
감사합니다. – Ralph