Modify func camelString to be more robust
1. In previous edition, for case "pic_url_1", the func will return "PicUrl_1", but "PicUrl1" seems to be more reasonable. 2. More test cases please refer to utils_test.go
This commit is contained in:
21
orm/utils.go
21
orm/utils.go
@@ -219,22 +219,17 @@ func snakeString(s string) string {
|
||||
// camel string, xx_yy to XxYy
|
||||
func camelString(s string) string {
|
||||
data := make([]byte, 0, len(s))
|
||||
j := false
|
||||
k := false
|
||||
num := len(s) - 1
|
||||
flag, num := true, len(s)-1
|
||||
for i := 0; i <= num; i++ {
|
||||
d := s[i]
|
||||
if k == false && d >= 'A' && d <= 'Z' {
|
||||
k = true
|
||||
}
|
||||
if d >= 'a' && d <= 'z' && (j || k == false) {
|
||||
d = d - 32
|
||||
j = false
|
||||
k = true
|
||||
}
|
||||
if k && d == '_' && num > i && s[i+1] >= 'a' && s[i+1] <= 'z' {
|
||||
j = true
|
||||
if d == '_' {
|
||||
flag = true
|
||||
continue
|
||||
} else if flag == true {
|
||||
if d >= 'a' && d <= 'z' {
|
||||
d = d - 32
|
||||
}
|
||||
flag = false
|
||||
}
|
||||
data = append(data, d)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user