Go 中的映射初始化:make 与 {}
Go 中,初始化映射有两种常用方法:使用 {} 或制作()。虽然它们都会生成空映射,但存在一个问题,即这两种方法之间是否存在任何性能差异。
为了研究这一点,让我们创建一个基准测试来比较这两种初始化技术:
<code class="go">package main import "testing" var result map[string]int func BenchmarkMakeLiteral(b *testing.B) { var m map[string]int for n := 0; n < b.N; n++ { m = map[string]int{} } result = m } func BenchmarkMakeMake(b *testing.B) { var m map[string]int for n := 0; n < b.N; n++ { m = make(map[string]int) } result = m } func main() { testing.Benchmark(BenchmarkMakeLiteral) testing.Benchmark(BenchmarkMakeMake) }</code>
在不同机器上运行基准测试结果一致,表明两种初始化方法没有显着的性能差异。 {} 和 make() 的执行时间几乎相同。
总之,虽然 {} 和 make() 方法都生成空映射,但使用其中一种方法并没有明显的性能优势。两者之间的选择可以根据个人喜好或具体要求。
以上是在 Go 中使用 `{}` 和 `make()` 初始化映射有性能差异吗?的详细内容。更多信息请关注PHP中文网其他相关文章!