goctl added
This commit is contained in:
48
tools/goctl/model/sql/util/stringutil.go
Normal file
48
tools/goctl/model/sql/util/stringutil.go
Normal file
@@ -0,0 +1,48 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
func FormatField(field string) (snakeCase, upperCamelCase, lowerCamelCase string) {
|
||||
snakeCase = field
|
||||
list := strings.Split(field, "_")
|
||||
upperCaseList := make([]string, 0)
|
||||
lowerCaseList := make([]string, 0)
|
||||
for index, word := range list {
|
||||
upperStart := convertUpperStart(word)
|
||||
lowerStart := convertLowerStart(word)
|
||||
upperCaseList = append(upperCaseList, upperStart)
|
||||
if index == 0 {
|
||||
lowerCaseList = append(lowerCaseList, lowerStart)
|
||||
} else {
|
||||
lowerCaseList = append(lowerCaseList, upperStart)
|
||||
}
|
||||
}
|
||||
upperCamelCase = strings.Join(upperCaseList, "")
|
||||
lowerCamelCase = strings.Join(lowerCaseList, "")
|
||||
return
|
||||
}
|
||||
|
||||
func convertLowerStart(in string) string {
|
||||
var resp []rune
|
||||
for index, r := range in {
|
||||
if index == 0 {
|
||||
r = unicode.ToLower(r)
|
||||
}
|
||||
resp = append(resp, r)
|
||||
}
|
||||
return string(resp)
|
||||
}
|
||||
|
||||
func convertUpperStart(in string) string {
|
||||
var resp []rune
|
||||
for index, r := range in {
|
||||
if index == 0 {
|
||||
r = unicode.ToUpper(r)
|
||||
}
|
||||
resp = append(resp, r)
|
||||
}
|
||||
return string(resp)
|
||||
}
|
||||
Reference in New Issue
Block a user