【发布时间】:2021-10-23 05:14:02
【问题描述】:
以下两个示例之间是否存在性能差异:
1.
var slice []int{ ... huge list of items... }
for i:=0; i<len(slice); i++ { .... do something ....}
2.
var slice []int{ ... huge list of items... }
sliceLen := len(slice)
for i:=0; i<sliceLen; i++ { .... do something ....}
“for”语句中的条件表达式是在每次迭代时评估还是只评估一次?
【问题讨论】:
-
测量。这是告诉的唯一方法。
-
这两个sn-ps可能编译成相同的机器码。
-
@Volker 我怀疑测试能否提供可靠的答案。我在下面写下了我的思考过程,作为对 Meny 回答的评论。
-
@CeriseLimón,是的,我怀疑这一点,但想听听比我更有知识的人的意见。老实说,我对实现背后的设计选择很好奇。
标签: performance for-loop go