func isNaN[T Ordered](x T) bool {
return x != x
}
+
+// Or returns the first of its arguments that is not equal to the zero value.
+// If no argument is non-zero, it returns the zero value.
+func Or[T comparable](vals ...T) T {
+ var zero T
+ for _, val := range vals {
+ if val != zero {
+ return val
+ }
+ }
+ return zero
+}