@@ -187,14 +187,14 @@ type Part [][]float64
187187
188188// String converts a part into a string.
189189func (p Part ) String () string {
190- res := ""
190+ var res strings. Builder
191191 for i , pt := range p {
192192 if i != 0 {
193- res += " "
193+ res . WriteString ( " " )
194194 }
195- res += fmt .Sprintf ("%.2f,%.2f" , pt [0 ], pt [1 ])
195+ res . WriteString ( fmt .Sprintf ("%.2f,%.2f" , pt [0 ], pt [1 ]) )
196196 }
197- return res
197+ return res . String ()
198198}
199199
200200// AddParts adds parts to the path and returns it.
@@ -890,18 +890,19 @@ func (p *Path) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error {
890890// P %f,%f[ %d[ %f,%f]][ C]
891891func (p * Path ) MarshalText () ([]byte , error ) {
892892 step := p .steps [0 ]
893- str := fmt .Sprintf ("P %f,%f" , step [0 ][0 ], step [0 ][1 ])
893+ var str strings.Builder
894+ str .WriteString (fmt .Sprintf ("P %f,%f" , step [0 ][0 ], step [0 ][1 ]))
894895 for i := 1 ; i < len (p .steps ); i ++ {
895896 step = p .steps [i ]
896- str += fmt .Sprintf (" %d" , len (step ))
897+ str . WriteString ( fmt .Sprintf (" %d" , len (step ) ))
897898 for _ , pts := range step {
898- str += fmt .Sprintf (" %f,%f" , pts [0 ], pts [1 ])
899+ str . WriteString ( fmt .Sprintf (" %f,%f" , pts [0 ], pts [1 ]) )
899900 }
900901 }
901902 if p .closed {
902- str += " C"
903+ str . WriteString ( " C" )
903904 }
904- return []byte (str ), nil
905+ return []byte (str . String () ), nil
905906}
906907
907908// UnmarshalText implements the encoding.TextUnmarshaler interface.
0 commit comments