package helper import ( "unicode" ) // CamelString 将某字符串转成驼峰写法 func CamelString(s string) string { data := make([]byte, 0, len(s)) j := false k := false num := 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 continue } data = append(data, d) } return string(data[:]) } // UnderLine 将某字符串转成下划线写法 func UnderLine(s string) string { var output []rune for i, r := range s { if i == 0 { output = append(output, unicode.ToLower(r)) continue } if unicode.IsUpper(r) { output = append(output, '_') } output = append(output, unicode.ToLower(r)) } return string(output) } // Ul 将某字符串转成下划线写法-简化用法 func Ul(s string) string { return UnderLine(s) }