我想确保是否可以通过使用 reduceLeft 而不是 foldLeft 来完成此任务。我正在列表中搜索给定的号码
val included = List(46, 19, 92).foldLeft(false) { (a, i) =>
| if (a) a else (i == 19)
| }
included: Boolean = true
但是我想使用 reduceLeft 完成相同的工作,这可能吗?
最佳答案
不直接。答案通常就是类型。
reduceLeft具有类似的类型:
List[A] => ((A,A) => A) => A
给定一个A列表,以及一个可以将2 A值组合为1 A值的函数,您将获得一个A值。
您可以做的是:
val a = List(46, 19, 92).reduceLeft { (a, b) =>
if(b == 19) b else a
}
val included = a == 19
当然,为此,最好使用“包含”,而不是使用这些选项中的任何一个。
关于scala - 在scala中使用reduceLeft代替foldLeft,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36921978/