diff --git a/README.md b/README.md index 7d0a745..1009c8d 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,20 @@ num := 42 ptr := common.ToPtr(num) // *int ``` +**IsNilOrZero** - Check if a pointer is nil or points to a zero value +```go +import "github.com/aykhans/go-utils/common" + +var ptr *int +common.IsNilOrZero(ptr) // true (nil pointer) + +num := 0 +common.IsNilOrZero(&num) // true (zero value) + +num = 42 +common.IsNilOrZero(&num) // false (non-zero value) +``` + ### parser String parsing utilities with generic type support. diff --git a/common/compare.go b/common/compare.go new file mode 100644 index 0000000..a50944f --- /dev/null +++ b/common/compare.go @@ -0,0 +1,10 @@ +package common + +func IsNilOrZero[T comparable](value *T) bool { + if value == nil { + return true + } + + var zero T + return *value == zero +}