Kotlin 产量示例

问题描述 投票:0回答:1

我正在学习 Kotlin,出于对它的热爱,我无法直接得到产量/序列。有人可以更正我的代码吗?

fun Sequence<Int>.mapIterable(transform: (Int)->Int) = sequence {
    this.forEach({ x -> yield(transform(x)) })
}

fun Sequence<Int>.product(): Int {
    return this.reduce({ acc,x -> acc*x })
}

infix fun Int.powerof(exponent: Int): Int {
    return (1..exponent).mapIterable({ x -> this }).product()
}

fun main() {
    println(2 powerof 10)
}
kotlin sequence yield iterable
1个回答
0
投票

正如@Sweeper建议的:

fun Sequence<Int>.product(): Int {
    return this.reduce({ acc,x -> acc*x })
}

infix fun Int.powerof(exponent: Int): Int {
    return (1..exponent).asSequence().map({ this }).product()
}

fun main() {
    println(2 powerof 10)
}
© www.soinside.com 2019 - 2024. All rights reserved.