2017-10-14 47 views
-1

跨越数组时,每次迭代都会返回两个值。第一个是索引,第二个是该索引处元素的副本在范围内执行的性能

这里是我的代码:

var myArray = [5]int {1,2,3,4,5} 
sum := 0 
// first with copy 
for _, value := range myArray { 
    sum += value 
} 
// second without copy 
for i := range myArray { 
    sum += myArray[i] 
} 

哪一个我应该使用有更好的表现?

这两段代码中的内置类型是否有区别?

+0

“哪个更适合性能”的答案是_always_:运行基准测试并查看。结果通常在应用程序,运行时版本以及某些情况下使用的操作系统或硬件之间有所不同。 – Flimzy

回答

0

第二个是快,但不同的是太低了,你可以忽略

的主要区别是,当你有一个大尺寸的循环。在这种情况下,第一个循环比第二个循环需要更多内存