add more checks
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
edc93e8c37
commit
307a08f50c
@ -111,10 +111,21 @@ func StructFieldByTag(src interface{}, tkey string, tval string) (interface{}, e
|
|||||||
|
|
||||||
// ZeroFieldByPath clean struct field by its path
|
// ZeroFieldByPath clean struct field by its path
|
||||||
func ZeroFieldByPath(src interface{}, path string) error {
|
func ZeroFieldByPath(src interface{}, path string) error {
|
||||||
|
if src == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
var err error
|
var err error
|
||||||
val := reflect.ValueOf(src)
|
val := reflect.ValueOf(src)
|
||||||
|
|
||||||
|
if IsEmpty(val) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
for _, p := range strings.Split(path, ".") {
|
for _, p := range strings.Split(path, ".") {
|
||||||
|
if IsEmpty(val) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
val, err = structValueByName(val, p)
|
val, err = structValueByName(val, p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
Loading…
Reference in New Issue
Block a user