Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

49 wiersze
828 B

  1. package strcase
  2. import (
  3. "strings"
  4. )
  5. // Converts a string to CamelCase
  6. func toCamelInitCase(s string, initCase bool) string {
  7. s = addWordBoundariesToNumbers(s)
  8. s = strings.Trim(s, " ")
  9. n := ""
  10. capNext := initCase
  11. for _, v := range s {
  12. if v >= 'A' && v <= 'Z' {
  13. n += string(v)
  14. }
  15. if v >= '0' && v <= '9' {
  16. n += string(v)
  17. }
  18. if v >= 'a' && v <= 'z' {
  19. if capNext {
  20. n += strings.ToUpper(string(v))
  21. } else {
  22. n += string(v)
  23. }
  24. }
  25. if v == '_' || v == ' ' || v == '-' {
  26. capNext = true
  27. } else {
  28. capNext = false
  29. }
  30. }
  31. return n
  32. }
  33. func ToCamel(s string) string {
  34. return toCamelInitCase(s, true)
  35. }
  36. func ToLowerCamel(s string) string {
  37. if s == "" {
  38. return s
  39. }
  40. if r := rune(s[0]); r >= 'A' && r <= 'Z' {
  41. s = strings.ToLower(string(r)) + s[1:]
  42. }
  43. return toCamelInitCase(s, false)
  44. }