Back to Lo

Core Coalesce

docs/data/core-coalesce.md

1.53.0840 B
Original Source

Returns the first non-zero value from the provided comparable arguments, with a boolean indicating if a non-zero value was found.

go
// With strings - returns first non-empty string
result, ok := lo.Coalesce("", "foo", "bar")
// result: "foo", ok: true

// All zero values - returns zero value with false
result, ok = lo.Coalesce("", "")
// result: "", ok: false

// With integers - zero is considered zero value
result, ok = lo.Coalesce(0, 42, 100)
// result: 42, ok: true

// With floats - zero is considered zero value
result, ok = lo.Coalesce(0.0, 3.14, 2.71)
// result: 3.14, ok: true

// With pointers - nil is zero value for pointer types
var s *string
str := "hello"
result, ok = lo.Coalesce(nil, &str)
// result: &str, ok: true

// All nil pointers
result, ok = lo.Coalesce[*string](nil, nil, nil)
// result: nil, ok: false