Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从scala对象获取列表_Scala_Loops - Fatal编程技术网

从scala对象获取列表

从scala对象获取列表,scala,loops,Scala,Loops,我是scala新手,我正试图从另一个列表中构造一个列表,我从scala对象中获得该列表这是我的模型: case class Session( _id: Option[String], participants: Option[Seq[Participant]]) case class Participant( contact: Contact, participantStatus: Option[String]) 斯卡拉酒店 case class Con

我是scala新手,我正试图从另一个列表中构造一个列表,我从scala对象中获得该列表这是我的模型:

case class Session(
    _id: Option[String],
    participants: Option[Seq[Participant]])
  case class Participant(
    contact: Contact,
    participantStatus: Option[String])
斯卡拉酒店
  case class Contact(
    firstName: Option[FirstName],
    lastName: Option[LastName],
    address: Option[Address])
地址:scala
  case class Address(
    email: Option[String])
使用此循环:

for (s <- session.participants) println(s)
当我尝试时:
println(s.contact)

我得到:
value contact不是Seq[models.Session.Participant]
的成员,您的
s
变量将从
会话中拉出。参与者
具有类型
选项[Seq[Participant]
,因此您得到
Seq[Participant]
。如果您想在参与者中循环,您需要一个列表/序号,因此:

val sessionParticipants = session.participants.getOrElse(Seq.empty)
for (s <- sessionParticipants) println(s)
val sessionParticipants=session.participants.getOrElse(Seq.empty)

对于(s您的
s
变量将从
会话中拉出。参与者
具有类型
选项[Seq[Participant]]
,因此您将获得
Seq[Participant]
。如果您想循环参与者,您需要一个列表/Seq,因此:

val sessionParticipants = session.participants.getOrElse(Seq.empty)
for (s <- sessionParticipants) println(s)
val sessionParticipants=session.participants.getOrElse(Seq.empty)

关于(s)你能给我们你的价值会话的初始化吗?我有一些代码:for(s println(s.contact)),但我无法测试它:pit正在工作:一些(地址)(无,无,无,无,无,一些(1),一些(1),一些(email1@gmail.‌​但是现在我怎样才能访问电子邮件呢?s.contact.address.email应该可以做到这一点?但是你应该小心所有这些选项,并进行一些匹配,看看它是否存在(这在我学习选项时对我有帮助:)非常感谢你,但是在使用println(s.contact.address.email)时)我得到了同样的错误:value-email不是Seq[models.Address]s.map(s=>s.contact.Address.map(a=>println(a.email))的成员,这样行吗?你能给我们初始化你的值会话吗?我有一些代码:for(s println(s.contact)),但我无法测试:pit的工作:一些(地址,没有,没有,没有,没有,没有,一些(1),一些(1),一些(1),一些(email1@gmail.‌​但是现在我怎样才能访问电子邮件呢?s.contact.address.email应该可以做到这一点?但是你应该小心所有这些选项,并进行一些匹配,看看它是否存在(这在我学习选项时对我有帮助:)非常感谢你,但是在使用println(s.contact.address.email)时)我得到了同样的错误:value email不是Seq[models.Address]s.map(s=>s.contact.Address.map(a=>println(a.email))的成员,这样行吗?您可能想将参与者:Option[Seq[Participant]]更改为参与者:Seq[Participant]Seq[Participant]Seq的选项有点奇怪,由于Seq已经有一个空对象:空的Seqyes我看到了非常感谢您的帮助,最后一件事:当使用for(s
val maybeEmail=s.contact.address.flatMap(u.email)
应该是
选项[String]
。然后您可以使用
getOrElse
指定一封备用电子邮件,或者,如果您100%希望每次收到电子邮件时,都可以调用
get
。;)您可能希望将参与者:Option[Seq[Participant]]更改为参与者:Seq[Participant]Seq的选项有点奇怪,由于Seq已经有一个空对象:空的Seqyes我看到了非常感谢您的帮助,最后一件事:当使用for(s
val maybeEmail=s.contact.address.flatMap(u.email)
应该是
选项[String]
。然后,您可以使用
getOrElse
指定回退电子邮件,或者,如果您100%希望每次收到电子邮件时,都可以调用
get
。)