feat: add stringx.ToCamelCase (#2622)

master
Kevin Wan 2 years ago committed by GitHub
parent 20e659749a
commit 95a5f64493
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -2,6 +2,7 @@ package stringx
import (
"errors"
"unicode"
"github.com/zeromicro/go-zero/core/lang"
)
@ -168,6 +169,15 @@ func TakeWithPriority(fns ...func() string) string {
return ""
}
// ToCamelCase returns the string that converts the first letter to lowercase.
func ToCamelCase(s string) string {
for i, v := range s {
return string(unicode.ToLower(v)) + s[i+1:]
}
return ""
}
// Union merges the strings in first and second.
func Union(first, second []string) []string {
set := make(map[string]lang.PlaceholderType)

@ -396,6 +396,61 @@ func TestTakeWithPriority(t *testing.T) {
}
}
func TestToCamelCase(t *testing.T) {
tests := []struct {
input string
expect string
}{
{
input: "",
expect: "",
},
{
input: "A",
expect: "a",
},
{
input: "a",
expect: "a",
},
{
input: "hello_world",
expect: "hello_world",
},
{
input: "Hello_world",
expect: "hello_world",
},
{
input: "hello_World",
expect: "hello_World",
},
{
input: "helloWorld",
expect: "helloWorld",
},
{
input: "HelloWorld",
expect: "helloWorld",
},
{
input: "hello World",
expect: "hello World",
},
{
input: "Hello World",
expect: "hello World",
},
}
for _, test := range tests {
test := test
t.Run(test.input, func(t *testing.T) {
assert.Equal(t, test.expect, ToCamelCase(test.input))
})
}
}
func TestUnion(t *testing.T) {
first := []string{
"one",

Loading…
Cancel
Save