Goで数字3桁毎にカンマを挿入する処理

func addComma(num int) string {
    str := strconv.Itoa(num)

    resultStrBuilder := strings.Builder{}

    for i, c := range str {
        if i != 0 && !(num < 0 && i == 1) && (len(str)-i)%3 == 0 {
            resultStrBuilder.WriteRune(',')
        }

        resultStrBuilder.WriteRune(c)
    }

    return resultStrBuilder.String()
}

テストとベンチマーク

func TestAddComma(t *testing.T) {
    tests := []struct {
        num      int
        expected string
    }{
        {0, "0"},
        {1, "1"},
        {12, "12"},
        {123, "123"},
        {1234, "1,234"},
        {12345, "12,345"},
        {123456, "123,456"},
        {1234567890, "1,234,567,890"},
        {1234567891234567890, "1,234,567,891,234,567,890"},
        {-1, "-1"},
        {-12, "-12"},
        {-123, "-123"},
        {-1234, "-1,234"},
        {-12345, "-12,345"},
        {-123456, "-123,456"},
        {-1234567890, "-1,234,567,890"},
        {-1234567891234567890, "-1,234,567,891,234,567,890"},
    }

    for _, test := range tests {
        result := addComma(test.num)
        if result != test.expected {
            t.Errorf("addComma(%d) = %s, expected %s", test.num, result, test.expected)
        }
    }
}

func BenchmarkAddComma1(b *testing.B) {
    for i := 0; i < b.N; i++ {
        _ = addComma(1234567890)
    }
}

func BenchmarkAddComma2(b *testing.B) {
    for i := 0; i < b.N; i++ {
        _ = addComma(-1234567890)
    }
}

ベンチ結果(M2 MacBook AIR、Dockerコンテナ内で実行)

BenchmarkAddComma1-4    12618339                94.57 ns/op           40 B/op          3 allocs/op
BenchmarkAddComma2-4    12581017                95.65 ns/op           40 B/op          3 allocs/op