Scala 在 List Map 或 Foreach 中附加 Seq 和字符串

Scala append Seq in with a string in a List Map or Foreach

我想从对象属性列表中附加一个 val adminEmailSeq = Seq.empty[String]

我的 List[User] 调用了 'admins',我正在尝试这样做,但它不起作用:

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

虽然 admin.email 包含正确的信息,但 adminEmailSeq.isEmpty 总是正确的。

根据描述,我假设您需要 Admins

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

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

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

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

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