Go 语言将 unit 类型转成 string 的几种方法和比较。

fmt.Sprint

1func sprint(u uint) string {
2    return fmt.Sprint(u)
3}

strconv.FormatUint

1func formatUint(u uint) string {
2    return strconv.FormatUint(uint64(u), 10)
3}

性能

 1func BenchmarkSprint(b *testing.B) {
 2    for n := 0; n < b.N; n++ {
 3        sprint(uint(n))
 4    }
 5}
 6
 7func BenchmarkFormatUint(b *testing.B) {
 8    for n := 0; n < b.N; n++ {
 9        formatUint(uint(n))
10    }
11}
1$ go test -bench=.
2BenchmarkSprint-12              13384656                81.6 ns/op
3BenchmarkFormatUint-12          44932880                29.5 ns/op

后者明显性能更好。