func isNonScalar(val reflect.Value) bool {
	kind := val.Kind()

	if kind == reflect.Interface {
		kind = reflect.TypeOf(val).Kind()
	}

	switch kind {
	case reflect.Ptr, reflect.Struct,
		reflect.Map, reflect.Slice, reflect.Array:
		return true
	default:
		return false
	}
}
// isNonScalar returns true if val is a non-scalar value such as a pointer,
// struct, map or slice.
isNonScalar returns true if val is a non-scalar value such as a pointer,
struct, map or slice.
// isNonScalar returns true if val is a non - scalar value such as a pointer // struct map or slice .
func isNonScalar(val reflect.Value) bool {
	kind := val.Kind()
	if kind == reflect.Interface {
		kind = reflect.TypeOf(val).Kind()
	}
	switch kind {
	case reflect.Ptr, reflect.Struct,
		reflect.Map, reflect.Slice, reflect.Array:
		return true
	default:
		return false
	}
}
func isNonScalar ( val reflect . Value ) bool { kind := val . Kind ( ) if kind == reflect . Interface { kind = reflect . TypeOf ( val ) . Kind ( ) } switch kind { case reflect . Ptr , reflect . Struct , reflect . Map , reflect . Slice , reflect . Array : return true default : return false } }
isNonScalar returns true if val is a non-scalar value such as a pointer,
struct, map or slice.
isNonScalar returns true if val is a non - scalar value such as a pointer struct map or slice .