Scala在List Map或Foreach中附加了一个字符串

时间:2016-10-23 13:00:29

标签: scala scala-collections

我希望从对象属性列表中添加val adminEmailSeq = Seq.empty[String]

我的List[User]被称为'管理员'而且我试图这样做,但它不起作用:

admins.foreach(
    admin => {
        adminEmailSeq :+ admin.email
    }
)

虽然admin.email包含正确的信息,但adminEmailSeq.isEmpty始终为真。

2 个答案:

答案 0 :(得分:4)

根据说明,我假设您需要Emails

中的Admins
val adminEmailSeq = admins.map(_.email)

答案 1 :(得分:3)

追加':+'实际上并没有将它追加到领先的Seq。它正在复制。 关于您的解决方案,您需要这样做。

admins.foreach(
    admin => {
        adminEmailSeq = adminEmailSeq :+ admin.email
    }
)

但我认为正确的解决方案是使用地图。

忘了:我是不可变因素和价值观的粉丝,而不是变量。它可能有助于更容易理解代码。因此我不会使用该变量重新分配(因此我建议使用地图,因为这里的一些解决方案可能会向您显示)。