update:Use the official slice operate func (#4841)

This commit is contained in:
me-cs
2025-05-11 19:48:54 +08:00
committed by GitHub
parent 2e91ba5811
commit 072d68f897
4 changed files with 7 additions and 42 deletions

View File

@@ -2,6 +2,7 @@ package stringx
import (
"errors"
"slices"
"unicode"
"github.com/zeromicro/go-zero/core/lang"
@@ -14,17 +15,6 @@ var (
ErrInvalidStopPosition = errors.New("stop position is invalid")
)
// Contains checks if str is in list.
func Contains(list []string, str string) bool {
for _, each := range list {
if each == str {
return true
}
}
return false
}
// Filter filters chars from s with given filter function.
func Filter(s string, filter func(r rune) bool) string {
var n int
@@ -123,11 +113,7 @@ func Remove(strings []string, strs ...string) []string {
// Reverse reverses s.
func Reverse(s string) string {
runes := []rune(s)
for from, to := 0, len(runes)-1; from < to; from, to = from+1, to-1 {
runes[from], runes[to] = runes[to], runes[from]
}
slices.Reverse(runes)
return string(runes)
}

View File

@@ -41,28 +41,6 @@ func TestNotEmpty(t *testing.T) {
}
}
func TestContainsString(t *testing.T) {
cases := []struct {
slice []string
value string
expect bool
}{
{[]string{"1"}, "1", true},
{[]string{"1"}, "2", false},
{[]string{"1", "2"}, "1", true},
{[]string{"1", "2"}, "3", false},
{nil, "3", false},
{nil, "", false},
}
for _, each := range cases {
t.Run(path.Join(each.slice...), func(t *testing.T) {
actual := Contains(each.slice, each.value)
assert.Equal(t, each.expect, actual)
})
}
}
func TestFilter(t *testing.T) {
cases := []struct {
input string