scala-如果/否则为for循环

时间:2018-07-03 15:14:26

标签: scala loops for-loop if-statement

如果我像这样使用两个for循环,我会得到一个List [List [Int]],但是我怎么能得到一个List [Int]? 我不知道如何只在一个for循环中编写if / else语句,有人可以帮助我吗?

def example:  (List[(Int, Int)], Int,Int) => List[Int] ={
    (list, p, counter) => 
    if (counter >=0)
        for(x<-list(i._1); if ( x._1 ==p))yield x._2
        for(x<-list(i._1); if ( x._1 !=p))yield example((x._1,x._2+i._2):: Nil,p,counter-1)
    else { ....}
}

1 个答案:

答案 0 :(得分:0)

首先,按照您所写的,您发布的代码甚至不是有效的定义。如果您有可用的东西,但返回的类型与所需类型不同,请发布该有效代码。

话虽如此,如果您有List[List[Int]]并想要一个List[Int],则该方法为flatten

用法:

scala> val nestedList = List(List(1, 2), List(3, 4), List(5, 6))
nestedList: List[List[Int]] = List(List(1, 2), List(3, 4), List(5, 6))

scala> val flattenedList = nestedList.flatten
flattenedList: List[Int] = List(1, 2, 3, 4, 5, 6)