我下面的代码通过检查第二个元素(索引号)是否与另一个变量匹配来过滤元组。
statements.zipWithIndex.filterNot(_._2 == StatementsIntoTuples(statements).indexWhere(_.equalsIgnoreCase("PUSHPOP")) map {
case (statement,_) => statement }
我正在尝试使用OR运算符通过第二个条件过滤掉,如下所示(1仅是示例)
statements.zipWithIndex.filterNot(_._2 == StatementsIntoTuples(statements).indexWhere(_.equalsIgnoreCase("PUSHPOP")) || _._2 == 1 )map {
case (statement,_) => statement
}
但是它给我一个缺少参数类型的错误。对于单个元素而不是元组,我很熟悉,即在我的代码中使用了下面的代码并且运行良好,但是我可能会做错和误解_._2
。
statements.filterNot(x => x.toString().contains("NOP") && x.isUnlabelled)
这是因为您使用了两次下划线。连续的下划线指的是连续的lambda参数,您只有一个。您需要以更明确的形式编写它:
statements.zipWithIndex
.filterNot { case(_, index) => index == StatementsIntoTuples(statements).indexWhere(_.equalsIgnoreCase("PUSHPOP")) || index == 1 }
.map { case(statement, _) => statement}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句