Scala在列表映射或Foreach中使用字符串追加Seq in

Scala在列表映射或Foreach中使用字符串追加Seq in,scala,scala-collections,Scala,Scala Collections,我希望从对象属性列表中附加一个val adminEmailSeq=Seq.empty[String] 我的列表[用户]名为“管理员”,我正在尝试这样做,但它不起作用: admins.foreach( admin => { adminEmailSeq :+ admin.email } ) 虽然admin.email包含正确的信息,但adminimailseq.isEmpty始终是正确的。根据描述,我假设您需要管理员的电子邮件 val adminEmailSe

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

我的
列表[用户]
名为“管理员”,我正在尝试这样做,但它不起作用:

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

虽然
admin.email
包含正确的信息,但
adminimailseq.isEmpty
始终是正确的。

根据描述,我假设您需要
管理员的
电子邮件

val adminEmailSeq = admins.map(_.email)

根据描述,我假设您需要来自
管理员的
电子邮件

val adminEmailSeq = admins.map(_.email)

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

admins.foreach(
    admin => {
        adminEmailSeq = adminEmailSeq :+ admin.email
    }
)
但我认为正确的解决办法是使用地图


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

追加“:+”实际上不会将其追加到前导Seq。它正在复制。 关于您的解决方案,您需要这样做

admins.foreach(
    admin => {
        adminEmailSeq = adminEmailSeq :+ admin.email
    }
)
但我认为正确的解决办法是使用地图

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