helper.go 662 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package helper
  2. import "strings"
  3. func LowerFirst(s string) string {
  4. isFirst := true
  5. return strings.Map(func(r rune) rune {
  6. if isFirst && r >= 'A' && r <= 'Z' {
  7. return r + 32
  8. }
  9. isFirst = false
  10. return r
  11. }, s)
  12. }
  13. func BreakUp(s string) []string {
  14. length := len(s)
  15. b := make([]byte, length)
  16. ss := make([]string, 0)
  17. var p int
  18. for i := 0; i < length; i++ {
  19. if s[i] >= 'A' && s[i] <= 'Z' {
  20. if p > 0 {
  21. ss = append(ss, string(b[:p]))
  22. }
  23. p = 0
  24. b[p] = s[i] + 32
  25. } else {
  26. b[p] = s[i]
  27. }
  28. p++
  29. }
  30. if p > 0 {
  31. ss = append(ss, string(b[:p]))
  32. }
  33. return ss
  34. }
  35. func Camel2id(s string) string {
  36. return strings.Join(BreakUp(s), "-")
  37. }