gpt4 book ai didi

collections - 显示范围内给定数字的倍数

转载 作者:行者123 更新时间:2023-12-02 13:08:42 26 4
gpt4 key购买 nike

如何更好地修复以下代码(从第一个元素到最后一个元素进行迭代的另一种方法?我的目标是以最有效,最简单的方式编写kotlin代码

我正在寻找有人告诉我而不是n / 7,我应该怎么写才能获得相同的代码结果

val numList =  1..20
val numMul7= numList.map { it *7 }

// here what else instead of n/7 can i use to get same result and it iterate the range from the first element to the last one
numMul7.forEach { n -> println("${n/7} * 7 = $n") };

这里是输出:
1 * 7 = 7
2 * 7 = 14
3 * 7 = 21
4 * 7 = 28
5 * 7 = 35
....
12 * 7 = 84
13 * 7 = 91
14 * 7 = 98
15 * 7 = 105
16 * 7 = 112
17 * 7 = 119
18 * 7 = 126
19 * 7 = 133
20 * 7 = 140

编辑2:
@Saurabh Patel或任何其他专家
您能否让我知道为什么以下代码不起作用?
val numList =  1..20
val numMul7= numList.map { it *7 }
numMul7.forEach { n -> println("${it} * 7 = $n") };

最佳答案

您可以一行完成:

(1..20).map { it * 7 }.forEach { println("${it/7} * 7 = $it") }

或与 forEach函数相同:
(1..20).forEach { println("$it * 7 = ${it*7}") }

如果需要将结果保存到变量中:
val listOfMultipliers = (1..20).map { it * 7 }

如果我们使用更抽象的方式:
fun getMultipliersBy(range: IntRange, multiplier: Int): List<Int> {
return range.map { it * multiplier }
}

// we can call it like this
getMultipliersBy(1..20, 7).forEach { println("${it/7} * 7 = $it") }
getMultipliersBy(1..40, 10).forEach { println("${it/10} * 10 = $it") }

使用 扩展功能:
fun IntRange.getMultipliersBy(multiplier: Int): List<Int> {
return map { it * multiplier }
}

//call it like this
(1..20).getMultipliersBy(7).forEach { println("${it/7} * 7 = $it") }
(1..40).getMultipliersBy(10).forEach { println("${it/10} * 10 = $it") }

关于collections - 显示范围内给定数字的倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54472329/

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