📜  Scala 设置 last() 方法与示例(1)

📅  最后修改于: 2023-12-03 15:05:04.765000             🧑  作者: Mango

Scala 设置 last() 方法与示例

在Scala中,没有提供last()方法。但是我们可以添加这个方法来获取集合的最后一个元素。下面是设置last()方法的示例:

implicit class RichList[A](list: List[A]) {
  def lastOption: Option[A] = list match {
    case x :: Nil => Some(x)
    case x :: xs => xs.lastOption
    case _ => None
  }

  def last: A = lastOption.getOrElse(throw new NoSuchElementException("List is empty."))
}

在这个示例中,我们使用了隐式类的方式,对List进行了扩展。在扩展中,我们定义了lastOption方法,该方法返回当前List中的最后一个元素。如果List为空,则返回None。在last方法中,我们使用lastOption方法获取List的最后一个元素。如果List为空,则抛出NoSuchElementException异常。

下面是关于该方法的使用示例:

val list1 = List(1, 2, 3)
val list2 = List.empty[Int]
 
// 获取最后一个元素
val lastElement1 = list1.last
println(s"Last element of $list1 is $lastElement1") // 输出:Last element of List(1, 2, 3) is 3
 
try {
  val lastElement2 = list2.last
  println(s"Last element of $list2 is $lastElement2")
} catch {
  case e: NoSuchElementException => println(e.getMessage) // 输出:List is empty.
}

在这个示例中,我们创建了两个List,一个非空的List1和一个空List2。我们使用last方法获取List1的最后一个元素,并输出了结果。然后,我们尝试使用last方法获取List2中的最后一个元素。由于List2为空,所以会抛出NoSuchElementException异常。

总之,Scala中没有提供last()方法,但是我们可以使用隐式类将其添加到集合中。在本文中,我们展示了如何实现和使用这个方法。