github.com/glycerine/zebrapack@v4.1.1-0.20181107023619-e955d028f9bf+incompatible/cmd/addzid/under.go (about) 1 package main 2 3 import "unicode" 4 5 func underToCamelCase(s string) string { 6 ru := []rune(s) 7 n := len(ru) 8 last := n - 1 9 for i := 0; i < n; i++ { 10 if ru[i] == '_' && i < last { 11 if unicode.IsLower(ru[i+1]) { 12 ru[i+1] = unicode.ToUpper(ru[i+1]) 13 } 14 copy(ru[i:], ru[i+1:]) 15 ru = ru[:last] 16 17 last-- 18 n-- 19 i-- 20 } 21 } 22 return string(ru) 23 }