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

後者明顯性能更好。