From 541756bf96272f830afdd677323a705aa1076bac Mon Sep 17 00:00:00 2001 From: takuoki Date: Mon, 4 Jun 2018 09:47:14 +0900 Subject: [PATCH] improve first upper case for ToLowerCamel --- camel.go | 6 ++++++ camel_test.go | 3 +++ 2 files changed, 9 insertions(+) diff --git a/camel.go b/camel.go index d5e2e2d..80075a9 100644 --- a/camel.go +++ b/camel.go @@ -38,5 +38,11 @@ func ToCamel(s string) string { } func ToLowerCamel(s string) string { + if s == "" { + return s + } + if r := rune(s[0]); r >= 'A' && r <= 'Z' { + s = strings.ToLower(string(r)) + s[1:] + } return toCamelInitCase(s, false) } diff --git a/camel_test.go b/camel_test.go index 6ef522a..e1217a1 100644 --- a/camel_test.go +++ b/camel_test.go @@ -29,6 +29,9 @@ func TestToCamel(t *testing.T) { func TestToLowerCamel(t *testing.T) { cases := [][]string{ []string{"foo-bar", "fooBar"}, + []string{"TestCase", "testCase"}, + []string{"", ""}, + []string{"AnyKind of_string", "anyKindOfString"}, } for _, i := range cases { in := i[0]