Puedo hacer esto:
var a = [1,5,7,9,22]
a.count // 5
a[a.count - 1] // 22
a[a.endIndex - 1] // 22
pero seguramente hay una forma mas bonita?
Puedo hacer esto:
var a = [1,5,7,9,22]
a.count // 5
a[a.count - 1] // 22
a[a.endIndex - 1] // 22
pero seguramente hay una forma mas bonita?
lastIndex
var, que está disponible en Kotlin. Parece que tendría que quedarme endIndex - 1
por ahora.
Respuestas:
Actualización: Swift 2.0 incluye ahora first:T?
y last:T?
propiedades incorporadas.
Cuando lo necesite, puede hacer que la API Swift incorporada sea más bonita proporcionando sus propias extensiones, por ejemplo:
extension Array {
var last: T {
return self[self.endIndex - 1]
}
}
Esto le permite ahora acceder al último elemento en cualquier matriz con:
[1,5,7,9,22].last
endIndex
no es necesario hacer referencia a través de self
.
last
propiedad está integrada (como está first
). Vuelve nil
si la matriz está vacía.
A partir de beta5
ahora hay una propiedad first
ylast
Además de que Array adquiere primero y último, las colecciones perezosas también implementan primero (y último si pueden indexar bidireccionalmente), así como isEmpty.
También puede obtener y eliminar el último elemento de la matriz
removeLast()
Ejemplo:
var array = [1, 2, 3]
let removed = array.removeLast()
// array is [1, 2]
// removed is 3
Tomado de documentos de Apple (esta fuente caducó, pero puede encontrar ejemplos en esta página de documentación )
rápido 5:
if let last = a.last {
print(last)
}
editar para swift 2.2
extension Array {
var last: Element {
return self[self.endIndex - 1]
}
}