12345678910111213141516171819202122232425262728293031323334 |
- package util
- // CamelCase convert to Camel-Case
- func CamelCase(name string) string {
- if len(name) == 0 {
- return name
- }
- if name[0] == '_' {
- return name
- }
- input := []byte(name)
- ret := make([]byte, 0, len(input))
- toUpper := func(c byte) byte {
- if 'a' <= c && c <= 'z' {
- c -= 32
- }
- return c
- }
- ret = append(ret, toUpper(input[0]))
- underline := false
- for _, c := range input[1:] {
- switch {
- case c == '_':
- underline = true
- default:
- if underline {
- c = toUpper(c)
- }
- ret = append(ret, c)
- underline = false
- }
- }
- return string(ret)
- }
|