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  }