scala> last(List(1, 1, 2, 3, 5, 8))
res0: Int = 8
Run Code Online (Sandbox Code Playgroud)
为了得到上面的结果,我写了这段代码:
val yum = args(0).toInt
val thrill:
def last(a: List[Int]): List[Int] = {
println(last(List(args(0).toInt).last)
}
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?
mic*_*ebe 82
如果列表为空,您可以使用last,返回最后一个元素或抛出a NoSuchElementException.
scala> List(1, 2, 3).last
res0: Int = 3
Run Code Online (Sandbox Code Playgroud)
如果您不知道列表是否为空,您可以考虑使用lastOption,返回一个Option.
scala> List().lastOption
res1: Option[Nothing] = None
scala> List(1, 2, 3).lastOption
res2: Option[Int] = Some(3)
Run Code Online (Sandbox Code Playgroud)
你的问题是关于List,但last在无限集合(例如Stream.from(0))上使用可能是危险的,并可能导致无限循环.
Jus*_*s12 10
没有使用的另一个版本last(无论出于什么原因你可能需要它).
def last(L:List[Int]) = L(L.size-1)
Run Code Online (Sandbox Code Playgroud)
你应该做得更好:
val a = List(1,2,3) //your list
val last = a.reverse.head
Run Code Online (Sandbox Code Playgroud)
更清洁,更不容易出错:)
| 归档时间: |
|
| 查看次数: |
45309 次 |
| 最近记录: |