code: func SnakeString(s string) string {
  	data := make([]byte, 0, len(s)*2)
  	j := false
  	num := len(s)
  	for i := 0; i < num; i++ {
  		d := s[i]
  		if i > 0 && d >= 'A' && d <= 'Z' && j {
  			data = append(data, '_')
  		}
  		if d != '_' {
  			j = true
  		}
  		data = append(data, d)
  	}
  	return strings.ToLower(string(data[:]))
  }
docs: // snake string, XxYy to xx_yy