我尝试了两种方法来列出一些东西
var response = List[RS_TxnNested]
consumertxnlist.foreach(txData => {
response = RS_TxnNested(blabla) +: response
})
其中consumertxnlist是一个Seq[something]。
另一种方法是
var response = consumerTxnList._2.map(txData => RS_TxnNested(blabla))
有人可以帮助我澄清哪个更好以及为什么?
正如您已经注意到的,Seq 特征中的 map 函数返回一个值。它的签名实际上是
def map[B](f: (A) ⇒ B): Seq[B]
它旨在将函数应用于扩展 Seq 特征的集合的每个元素并返回一个新集合。
另一方面,具有相同特征的 foreach 具有以下签名:
def foreach(f: (A) ⇒ Unit): Unit
这意味着它被设计为执行具有副作用的函数。
在您的示例中,您将向“响应”分配值的操作视为副作用。如果您的实际目标是返回一个值(就像您想要做的那样),那么使用 map.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)