Scala:获取列表中最后一个对象的id属性,如果列表为空,则获取None



假设我有一个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)

那一切都很好,但问题是,在列表为空的情况下,我需要这样做。在这种情况下,我需要lastIdNone

我试过

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

最新更新