code: func (v *Version) String() string {
  	var buffer bytes.Buffer
  
  	for i, comp := range v.components {
  		if i > 0 {
  			buffer.WriteString(".")
  		}
  		buffer.WriteString(fmt.Sprintf("%d", comp))
  	}
  	if v.preRelease != "" {
  		buffer.WriteString("-")
  		buffer.WriteString(v.preRelease)
  	}
  	if v.buildMetadata != "" {
  		buffer.WriteString("+")
  		buffer.WriteString(v.buildMetadata)
  	}
  
  	return buffer.String()
  }
docs: // String converts a Version back to a string; note that for versions parsed with
  // ParseGeneric, this will not include the trailing uninterpreted portion of the version
  // number.