首页 > 解决方案 > 有没有办法生成一个充满特定字符的字节片?

问题描述

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

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

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

for i := 0; i < difficulty; i++ {
  targetPrefix[i] = 48 // UTF8 encoding for "0"
}

标签: go

解决方案


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

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

targetPrefix := bytes.Repeat([]byte("0"), difficulty)

推荐阅读