有没有办法生成填充特定字符的字节片?

Huy*_*Huy 0 go

我想动态生成一个字节片并用 aa 值预填充它们。在这种情况下,如果难度为 3,我想生成[]byte("000").

我有下面的工作代码,有没有办法将其优化为一行代码?(即初始化它并且不必运行 for 循环并手动设置每个元素)?

var targetPrefix []byte = make([]byte, difficulty)

for i := 0; i < difficulty; i++ {
  targetPrefix[i] = 48 // UTF8 encoding for "0"
}
Run Code Online (Sandbox Code Playgroud)

poy*_*poy 5

我想这取决于你所说的优化是什么意思。如果你指的是性能,那么不。最终,当您“请求”一些内存时,必须对其进行迭代以设置值。在使用malloc. 如果你查看内存的内容,它可能是一堆 0,但也可能是一堆随机值。

然而,如果您只想编写更少的代码并利用已经存在的东西,您可以看看bytes.Repeat

targetPrefix := bytes.Repeat([]byte("0"), difficulty)
Run Code Online (Sandbox Code Playgroud)

  • @Huy好吧,这是你的一句:`targetPrefix := bytes.Repeat([]byte("0"),difficulty)` (2认同)