본문 바로가기
Language/go lang

valid 시 non zero value required 오류

by 태하팍 2018. 2. 2.
반응형


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 : 

 - https://godoc.org/

 - https://play.golang.org/


열공 열공~!

반응형

'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