import (
"fmt"
"strconv"
+ "strings"
)
const (
return t.root.equals(u.root)
}
-// This doesn't build with go1.4, sigh
-// func (t *T) String() string {
-// var b strings.Builder
-// first := true
-// for it := t.Iterator(); !it.IsEmpty(); {
-// k, v := it.Next()
-// if first {
-// first = false
-// } else {
-// b.WriteString("; ")
-// }
-// b.WriteString(strconv.FormatInt(int64(k), 10))
-// b.WriteString(":")
-// b.WriteString(v.String())
-// }
-// return b.String()
-// }
-
func (t *T) String() string {
- var b string
+ var b strings.Builder
first := true
for it := t.Iterator(); !it.Done(); {
k, v := it.Next()
if first {
first = false
} else {
- b += ("; ")
+ b.WriteString("; ")
}
- b += (strconv.FormatInt(int64(k), 10))
- b += (":")
- b += fmt.Sprint(v)
+ b.WriteString(strconv.FormatInt(int64(k), 10))
+ b.WriteString(":")
+ b.WriteString(fmt.Sprint(v))
}
- return b
+ return b.String()
}
func (t *node32) equals(u *node32) bool {