From 82197ac9b992cef5b2d09aa7222ef892d176429b Mon Sep 17 00:00:00 2001 From: Aykhan Shahsuvarov Date: Sun, 12 Oct 2025 21:11:51 +0400 Subject: [PATCH] feat: add IsNilOrZero utility function to common package --- README.md | 14 ++++++++++++++ common/compare.go | 10 ++++++++++ 2 files changed, 24 insertions(+) create mode 100644 common/compare.go 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 +}