反转Scala中List [String]中的每个元素

1 foreach scala list

我还在学习基础知识,我有一个问题.

我有一个功能

def reverse(s: String): String = {
  s.reverse
}
Run Code Online (Sandbox Code Playgroud)

现在我有一个List [String],我想要反转每个String元素.我试过foreach,但似乎返回Unit,而不是String.所以,我想要一个具有相同元素的List [String],但字符串相反.

List(abcd,efgh)成为List(dcba,hgfe).

我现在拥有的:

def reverse(ls : List[String]):List[String] = {
  List(ls.foreach (reverse))
}
Run Code Online (Sandbox Code Playgroud)

om-*_*nom 8

使用地图方法:

List("abcd", "efgh").map(s => reverse(s))
Run Code Online (Sandbox Code Playgroud)

或者干脆:

List("abcd", "efgh").map(reverse)
Run Code Online (Sandbox Code Playgroud)

与foreach这里的副作用(如打印出来的东西)不同,map 确实返回结果.

  • 您可能想要研究的其他有用方法(不是针对此问题,但将来使用)是`filter`,`foldLeft/Right`和`reduce`. (3认同)
  • 并且:`find`,`flatMap`,`groupBy`,`partition`,`exists` /`forall`等依此类推.只是仔细阅读ScalaDoc永远不会受到伤害.你可以学习东西......我在编写这个评论的样本时发现了`对应'! (3认同)
  • @adelbertc我还要在列表中添加`.collect` ;-) (2认同)