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
后者明显性能更好。