Foreach 循环列表 Scala?



>我在scala中有一个列表,如下所示:

val totalQuote: List[List[String]] = List(List("a","b","c"),List("1","2","3"),List("d","e","f"),List("4","5","6"))

我想使用 foreach 循环打印出列表中的每个元素。 但是当我运行这个时:

totalQuote.foreach{ e =>
val(a,b) = e
println(a)
}

我收到以下错误:

Error:(17, 10) constructor cannot be instantiated to expected type;
found   : (T1, T2)
required: List[String]
val(a,b) = e

不知道如何解决这个问题!

您可以使用嵌套for-循环:

for {
list <- totalQuote
character <- list
} println(character)

如果没有for,这也可以写成:

totalQuote.foreach { list =>
list foreach println
}

甚至

totalQuote foreach (_ foreach println)

如果只想从每个列表中删除前两个元素,则可以将for与模式匹配相结合,如下所示:

for (a :: b :: _ <- totalQuote) { 
println(a)
println(b) 
}

for (a :: b :: _ <- totalQuote; x <- List(a, b)) println(x)

e的类型List[String]

val (a,b) = e

仅当e是元组时才有效。试试这个

val a::b::_ = e

您可以简单地使用以下内容来打印列表的每个元素

totalQuote.flatten.foreach{x => println(x)}

最新更新