diff --git a/ifop/ifop.go b/ifop/ifop.go new file mode 100644 index 0000000..233a667 --- /dev/null +++ b/ifop/ifop.go @@ -0,0 +1,16 @@ +package ifop + +// apache 2.0 guonaihong +func If[T any](cond bool, t T) (zero T) { + if cond { + return t + } + return +} + +func IfElse[T any](cond bool, ifVal T, elseVal T) T { + if cond { + return ifVal + } + return elseVal +} diff --git a/ifop/ifop_test.go b/ifop/ifop_test.go new file mode 100644 index 0000000..d6387d3 --- /dev/null +++ b/ifop/ifop_test.go @@ -0,0 +1,20 @@ +package ifop + +// apache 2.0 guonaihong +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestIf(t *testing.T) { + a := "" + assert.Equal(t, If(len(a) == 0, "default"), "default") +} + +func TestIfElse(t *testing.T) { + a := "" + assert.Equal(t, IfElse(len(a) != 0, a, "default"), "default") + a = "hello" + assert.Equal(t, IfElse(len(a) != 0, a, "default"), "hello") +} diff --git a/radix/radix.go b/radix/radix.go index 758096e..76dea99 100644 --- a/radix/radix.go +++ b/radix/radix.go @@ -1,5 +1,6 @@ package radix +// apache 2.0 guonaihong import ( "strings" "unicode/utf8" @@ -231,6 +232,5 @@ func (r *Radix[V]) Delete(k string) { // 返回长度 func (r *Radix[V]) Len() int { - return r.length }