如何在Scala中提取列表的第三个元素

jed*_*edu 1 scala

 def third_list[A](ls: List[A]): A = {
     // Code can be changed here
    return List(ls(2)) //Error line for return type
  }


  val l1 = List(1, 2, 3, 4)
  println(third_list(l1))
  println(third_list(List(1,2,(3,4,5), 6, 7)))
Run Code Online (Sandbox Code Playgroud)

我需要按照返回类型标准返回列表的第三个元素。

我收到类型不匹配错误:

必需找到的列表[A]

ls(2) 不应该返回一个元素类型吗?

Tim*_*Tim 6

这个问题的简单答案是使用lift

def third_list[A](ls: List[A]): Option[A] =
  ls.lift(2)
Run Code Online (Sandbox Code Playgroud)

这会返回 an Option,因为您确实希望代码能够工作,即使列表没有三个元素也是如此。处理内部的数据Option或用于getOrElse指定默认值。

  • 最好的地方是标准库的文档[此处](https://www.scala-lang.org/api/current/scala/collection/immutable/List.html#lift:A=%3EOption[B ]) (4认同)