假设我有一个myObjects 列表
case class myObject(id:Int)
val myObjects = List(myObjects(5), myObjects(4))
我需要获取类型Option[String]
中最后一个对象的id
我可以使用
val lastId: Option[String] = Some(myObjects.last.id.toString)
那一切都很好,但问题是,在列表为空的情况下,我需要这样做。在这种情况下,我需要lastId
到None
我试过
val lastId: Option[String] = myObjects.lastOption.map(_.id.toString).getOrElse(None)
val lastId: Option[String] = myObjects.lastOption.map(_.id.toString.getOrElse(None))
以及它的几个变体,但无法使其同时适用于带有对象的列表和空列表
最好的方法是什么?
myObjects.lastOption.map(_.id.toString)
测试:
List(myObject(5), myObject(4)).lastOption.map(_.id.toString)
//res0: Option[String] = Some(4)
List.empty[myObject].lastOption.map(_.id.toString)
//res1: Option[String] = None