簡體   English   中英

Scala-在列表中使用for()或foreach()返回

[英]Scala - the return using a for() or foreach() in a list

我如何從foreachList應用的for語句的返回值構建a string (不打印它)? 可以說,我有這個:

val names = List("Bob", "Fred", "Joe", "Julia", "Kim")
val x: String = for (name <- names) name //I don't need this println(name)

這些name返回的字符串我正嘗試放入String ,並用space將它們連接起來。

使用mkString(sep: String)函數:

val names = List("Bob", "Fred", "Joe", "Julia", "Kim")
val x = names.mkString(" ")      // "Bob Fred Joe Julia Kim"

forforeach返回Unit 它們僅用於打印之類的副作用。 正如Jean所說, mkString是您最好的選擇。 還有第二個版本,可讓您傳遞打開和關閉字符串,例如,

scala> names.mkString("[", ", ", "]") res0: String = [Bob, Fred, Joe, Julia, Kim]

如果您需要更大的靈活性, reduceLeft可以使用reduceLeft mkStringmkString作用:

"[" + names.reduceLeft((str, name) => str + ", " + name) + "]"

不過有一個區別。 reduceLeft為一個空的容器拋出一個異常,而mkString只返回“”。 foldLeft適用於空集合,但是正確設置分隔符非常棘手。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM