gpt4 book ai didi

Kotlin 'until' 创建 IntRange 垃圾的乐趣

转载 作者:行者123 更新时间:2023-12-04 19:00:08 24 4
gpt4 key购买 nike

我正在使用 until下面我的循环中缀乐趣

for (x in 0 until bodies.size) bodies[x]()

在使用 YourKit 分析我的代码时,我注意到我有大量的 IntRange 对象(大约 2k/秒)。
enter image description here

当我切换循环以使用 int...int rangeTo 直接它不会产生任何垃圾。
for (x in 0..bodies.size-1) bodies[x]()

有人可以解释一下这两者之间的区别吗?据我所知 Int.until只需返回 this .. to
public infix fun Int.until(to: Int): IntRange {
val to_ = (to.toLong() - 1).toInt()
if (to_ > to) throw IllegalArgumentException("The to argument value '$to' was too small.")
return this .. to_
}

最佳答案

在当前版本 v1.0.4 中,编译器优化了对 rangeTo 的调用和 downTo函数,因为它们在 for 中最常见循环。

我认为他们会优化 until很快就会离开。

这是相关的问题票:https://youtrack.jetbrains.com/issue/KT-9900 .
随意投票。

关于Kotlin 'until' 创建 IntRange 垃圾的乐趣,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39239724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com