Android Studio 重复函数中的索引(Kotlin)

3lxsmp7m  于 2023-02-19  发布在  Android
关注(0)|答案(1)|浏览(172)

我最近一直在学Kotlin,我遇到了一些我不明白的东西。

import kotlin.random.Random
  
fun main() {
  var maximumDiscountValue = 0
 
  repeat(3) { index ->
     val discount = Random.nextInt(10)
     println("Attempt ${index+1}: $discount")
     if (discount > maximumDiscountValue) {
        maximumDiscountValue = discount
     }
  }
 
  println(maximumDiscountValue)
}
 
val number = 3
var output = 2
repeat(5) { index ->
  output += (index * number)
}
println(output)

我不明白“索引”在里面做什么。如果有人知道,我会很高兴知道的。

2nc8po8w

2nc8po8w1#

repeat函数指定了一个特定的lambada函数必须执行的次数(在您的例子中是3和5)。Index是一个从零开始的数字,在每次执行期间都会递增。
在你第一次重复时

repeat(5) {
 ... your index will be 0, 1, 2, 3 and 4
}

下面是repeat函数的源代码

@kotlin.internal.InlineOnly
public inline fun repeat(times: Int, action: (Int) -> Unit) {
    contract { callsInPlace(action) }

    for (index in 0 until times) {
        action(index)
    }
}

相关问题