# 题目
**练习3.10:编写一个非递归版本的comma函数,使用bytes.Buffer代替字符串链接操作。**
# 代码
```go
package main
import (
"fmt"
"bytes"
"os"
)
func comma (s string) string { //定义函数comma,对一个整数采用三位分节表示
var buf bytes.Buffer
n := len(s)%3 //判断若三位一节,高位多出来的是一位,两位,还是三位
if n ==0 {
n = 3
}
buf.WriteString(s[:n])
for n < len(s) {
buf.WriteByte(',')
buf.WriteString(s[n:n+3])
n += 3
}
return buf.String()
}
func main () {
for i := 1; i < len(os.Args); i++ {
fmt.Println(comma(os.Args[i]))
}
}
```
# 测试
```shell
main. exe 8904786
8,904,786
main. exe 89047864
89,047,864
main. exe 890478644
890,478,644
```
有疑问加站长微信联系(非本文作者))