Kotlin 中的反转“重复”功能

Posted

技术标签:

【中文标题】Kotlin 中的反转“重复”功能【英文标题】:Inverted "repeat" function in Kotlin 【发布时间】:2020-07-29 16:43:45 【问题描述】:

有一个 Kotlin 标准库 repeat() 函数允许执行给定函数指定次数并检索当前重复的索引。例如:

repeat(3) 
    println(it)

是否有一个函数可以以相反的顺序执行相同的操作?在某种程度上,指数下降了?

【问题讨论】:

(1..3).forEach 应该这样做。 @al3c 我需要的是反向索引。在这种情况下,(3..1).forEachIndexed 可以,但是,我专门询问 repeat() 函数。 println(2-it) 没有标准库函数。 为什么需要repeat 【参考方案1】:

不,没有倒计时的 stdlib repeat() 函数版本。

这可能是因为它很容易使用其他结构,例如forEach()。 (如果您足够关心传递的值以想要特定的顺序,那么这可能是一个好主意,因为它会使它变得明确。)

但如果你真的不想直接使用它,那么你自己写很容易:

inline fun repeatReverse(times: Int, action: (Int) -> Unit)
    = (times downTo 1).forEach(action)

【讨论】:

以上是关于Kotlin 中的反转“重复”功能的主要内容,如果未能解决你的问题,请参考以下文章

从 Kotlin 中的数组中删除重复项

kotlin中的三元运算符[重复]

如何将onClickListener设置为kotlin中的按钮[重复]

Java 8流限制功能是否有任何等效的Kotlin函数[重复]

如何在kotlin中的匿名类中获取父类[重复]

Kotlin 中的 Espresso 正则表达式匹配器 [重复]