[英]Scala - the return using a for() or foreach() in a list
我如何從foreach
或List
應用的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
將它們連接起來。
val names = List("Bob", "Fred", "Joe", "Julia", "Kim")
val x = names.mkString(" ") // "Bob Fred Joe Julia Kim"
for
和foreach
返回Unit
。 它們僅用於打印之類的副作用。 正如Jean所說, mkString
是您最好的選擇。 還有第二個版本,可讓您傳遞打開和關閉字符串,例如,
scala> names.mkString("[", ", ", "]") res0: String = [Bob, Fred, Joe, Julia, Kim]
如果您需要更大的靈活性, reduceLeft
可以使用reduceLeft
。 這mkString
是mkString
作用:
"[" + names.reduceLeft((str, name) => str + ", " + name) + "]"
不過有一個區別。 reduceLeft
為一個空的容器拋出一個異常,而mkString
只返回“”。 foldLeft
適用於空集合,但是正確設置分隔符非常棘手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.