code: func Underscore(s string) string {
  	r := make([]byte, 0, len(s)+5)
  	for i := 0; i < len(s); i++ {
  		c := s[i]
  		if IsUpper(c) {
  			if i > 0 && i+1 < len(s) && (IsLower(s[i-1]) || IsLower(s[i+1])) {
  				r = append(r, '_', ToLower(c))
  			} else {
  				r = append(r, ToLower(c))
  			}
  		} else {
  			r = append(r, c)
  		}
  	}
  	return string(r)
  }
docs: // Underscore converts "CamelCasedString" to "camel_cased_string".