2013-02-17 33 views
1

我仍在學習基礎知識,並且有一個問題。在Scala中反轉List [String]中的每個元素

我有一個函數

def reverse(s: String): String = { 
    s.reverse 
} 

現在我有一個列表[字符串],我想扭轉每個String元件。 我試過foreach,但它似乎返回Unit,而不是String。 所以,我想要一個具有相同元素的List [String],但是這些字符串是相反的。

列表(abcd,efgh)變成列表(dcba,hgfe)。

我現在擁有的一切:

def reverse(ls : List[String]):List[String] = { 
    List(ls.foreach (reverse)) 
} 

回答

8

使用地圖的方法:

List("abcd", "efgh").map(s => reverse(s)) 

或者乾脆:

List("abcd", "efgh").map(reverse) 

不同的foreach是這裏的副作用(如打印的事情了)地圖確實返回結果。

+0

啊,我錯過了Scala的API中的地圖的方法。謝謝! – Klasher 2013-02-17 23:19:27

+3

你可能想要研究的其他有用的方法(不是爲了這個問題,而是爲了將來的使用)是'filter','foldLeft/Right'和'reduce'。 – adelbertc 2013-02-17 23:48:17

+2

@adelbertc我也將'.collect'添加到列表中;-) – 2013-02-17 23:49:42

0

試試這個,

List("abcd", "efgh").reverse 
相關問題