code: func StringJoinFormat(format string, values interface{}, sep string) string {
  	v := reflect.ValueOf(values)
  	if v.Kind() != reflect.Slice {
  		panic("values is not a slice")
  	}
  	var buffer bytes.Buffer
  	for i := 0; i < v.Len(); i++ {
  		if i > 0 {
  			buffer.WriteString(sep)
  		}
  		buffer.WriteString(fmt.Sprintf(format, v.Index(i).Interface()))
  	}
  	return buffer.String()
  }
docs: // StringJoinFormat formats every value in values with format
  // and joins the result with sep as separator.
  // values must be a slice of a formatable type