我在列表(10..1000)上有一些过滤器。我想要一个函数对象列表,遍历这个列表,并将该过滤器应用于(10..1000)。也许以后会选择一些过滤器。
fun main(args: Array<String>) {
var sol = (10..1000).toList().filter(lastDigitIsLength ).filter(no7andNo1 ).filter(isEvenAndGreater1).filter(first2DigitsOddCrossSumLess10 ).filter(isPrime )
println("The number is $sol")
}
/* The functions exist发布于 2019-07-27 17:49:01
有几种方法可以做到这一点。
我已经在我的示例中列出了它们,以及一些一般性的注释。
// No need for varargs since Kotlin 1.3
fun main() {
// Prefer vals over vars
val sol = (10..1000).
asSequence().// Use asSequence instead of toList
filter { lastDigitIsLength(it) }. // Block
filter(::no7andNo1). // Method reference
toList()
println("The number is $sol")
}
// Don't know what it means, so lets just always return true
fun lastDigitIsLength(i: Int) = true // Short notation
fun no7andNo1(i: Int): Boolean {
return i % 10 == 7 || i % 10 == 1
}https://stackoverflow.com/questions/57230770
复制相似问题