从电子邮件列表中,我必须获得 2 个值:
在 Scala 中对此进行编码的惯用方法是什么?到目前为止,我有:
val primaryEmail = emails.headOption
val conf = Map[String, Any](
"email" -> primaryEmail,
"additionalEmails" ->
primaryEmail.map(_ => emails.tail).getOrElse(List())
)
编辑:至于为什么有
Any
: 我们使用GSON进行json序列化,内部将所有集合转换为java集合传递给jsonSerializationContext.serialize , 以 java.lang.Object 作为参数,所以 Any
很适合我们。
最佳答案
我可能只是 drop
第一个元素(如果您确定第一个元素始终是主要电子邮件)。像这样:
val conf = Map[String, Any](
"email" -> emails.headOption,
"additionalEmails" -> emails.drop(1)
)
如果主要电子邮件不在列表中(列表为空),则不会出现异常。
关于scala - 如果列表不为空则返回尾部或返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172547/