Go 語言將 unit 類型轉成 string

Go 語言將 unit 類型轉成 string 的幾種方法和比較。

fmt.Sprint

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

strconv.FormatUint

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

性能

func BenchmarkSprint(b *testing.B) {
    for n := 0; n < b.N; n++ {
        sprint(uint(n))
    }
}

func BenchmarkFormatUint(b *testing.B) {
    for n := 0; n < b.N; n++ {
        formatUint(uint(n))
    }
}
$ go test -bench=.
BenchmarkSprint-12              13384656                81.6 ns/op
BenchmarkFormatUint-12          44932880                29.5 ns/op

後者明顯性能更好。