반응형
func checkRequired(v reflect.Value, t reflect.StructField, options tagOptionsMap) (bool, error) {
if requiredOption, isRequired := options["required"]; isRequired {
if len(requiredOption) > 0 {
return false, Error{t.Name, fmt.Errorf(requiredOption), true}
}
return false, Error{t.Name, fmt.Errorf("non zero value required"), false}
} else if _, isOptional := options["optional"]; fieldsRequiredByDefault && !isOptional {
return false, Error{t.Name, fmt.Errorf("All fields are required to at least have one validation defined"), false}
}
// not required and empty is valid
return true, nil
}
위의 validator.go 소스를 살펴보자.
requried면 value를 가지고 체킹을 하게 된다.
즉, 값이 0이 들어오는데 required를 사용하게 된다면 false인 것이다. 즉 valid가 유효하지 못하다.
제거를 해주면 0이나 "" 이 들어와도 값이 없는 것으로 간주하지는 않을 것이다.
golang ref :
열공 열공~!
반응형
'Language > go lang' 카테고리의 다른 글
golang factory (0) | 2018.02.13 |
---|---|
golang - Package json (0) | 2018.02.09 |
Review (0) | 2017.10.24 |
test code..반성! (0) | 2017.10.13 |
golang Context란? (0) | 2017.09.07 |