2014-11-18 14 views
7

Swift Array ha una funzione first che restituisce il primo elemento della matrice (o nulla se la matrice è vuota.)Come accedere agli elementi non-primi di un array in Swift?

C'è una funzione incorporata che restituisce il resto della matrice senza il primo elemento?

+2

Howzabout 'removeAtIndex:'? Inserisci il primo oggetto e il gioco è fatto. Oppure prendi una fetta 'arr [1 .. matt

+2

Un downward non utile senza commenti non è utile. @matt RemoveAtIndex rimuove l'array originale? 'slice' potrebbe essere quello che sto cercando, ma è un po 'imbarazzante: non è irragionevole aspettarsi un nuovo linguaggio con funzionalità funzionali molto propagandate per avere questo integrato. –

+1

I documenti rispondono a queste domande; non hai bisogno di chiedermelo! – matt

risposta

11

C'è uno che potrebbe aiutarvi a ottenere quello che stai cercando:

func dropFirst<Seq : Sliceable>(s: Seq) -> Seq.SubSlice 

Usa come questo:

let a = [1, 2, 3, 4, 5, 6, 7, 18, 9, 10] 

let b = dropFirst(a) // [2, 3, 4, 5, 6, 7, 18, 9, 10] 
+2

In Swift 3.0, Array ha la sua funzione 'dropFirst', in modo semplice:' let b = a.dropFirst() ' – leanne

6

co risposta rrect per Swift 2.2, 3+:

let restOfArray = Array(array.dropFirst())

Aggiornamento per Swift 3+:

come @leanne rilevare nei commenti qui sotto, sembra che questo è ora possibile:

let restOfArray = array.dropFirst()

+2

o:' let restOfArray = originalArray.dropFirst() ' – leanne

+0

Non era possibile prima, io sono felice che sia stato corretto! Aggiornerò la risposta più tardi :) –