I can do this:
var a = [1,5,7,9,22]
a.count // 5
a[a.count - 1] // 22
a[a.endIndex - 1] // 22
but surely there's a prettier way?
As of beta5 there is now a first and last property
In addition to Array acquiring first and last, the lazy collections also implement first (and last if they can index bidirectionally), as well as isEmpty.
Update: Swift 2.0 now includes first:T? and last:T? properties built-in.
When you need to you can make the built-in Swift API's prettier by providing your own extensions, e.g:
extension Array {
var last: T {
return self[self.endIndex - 1]
}
}
This lets you now access the last element on any array with:
[1,5,7,9,22].last
endIndex doesn't need to be referenced via self.last property is built-in (as is first). It returns nil if the array is empty.You can also get and remove last element from array
removeLast()
Example:
var array = [1, 2, 3]
let removed = array.removeLast()
// array is [1, 2]
// removed is 3
Taken from Apple docs (this source expired but you can find examples in this documentation page)
lastIndexvar, which available in Kotlin. Seems like I'd have to stick withendIndex - 1for now.