写入标准输出而不创建缓冲区

Roc*_*nja 1 go

在循环中,我做了一些计算,然后我想从字节数组中打印一个字符串值,循环完成后打印一个新行。

使用fmt.Print将分配一个缓冲区,但我想要做的就是将字符打印到标准输出。有没有办法做到这一点?

for i, i < size; i++ {
    b = a[i] + i * 10
    fmt.Print(string((b)))
}
fmt.Println()
Run Code Online (Sandbox Code Playgroud)

Tim*_*per 6

您可以通过简单地写入os.Stdout文件来做到这一点:

var buff [1]byte
for i, i < size; i++ {
    b = a[i] + i * 10
    buff[0] = b
    os.Stdout.Write(buff[:])
}
buff[0] = '\n'
os.Stdout.Write(buff[:])
Run Code Online (Sandbox Code Playgroud)