code: func hasValue(fl FieldLevel) bool {
  
  	field := fl.Field()
  
  	switch field.Kind() {
  	case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func:
  		return !field.IsNil()
  	default:
  
  		if fl.(*validate).fldIsPointer && field.Interface() != nil {
  			return true
  		}
  
  		return field.IsValid() && field.Interface() != reflect.Zero(field.Type()).Interface()
  	}
  }
docs: // HasValue is the validation function for validating if the current field's value is not the default static value.