2014-11-18 4 views
7

Swift Array hat eine first Funktion, die das erste Element des Arrays zurückgibt (oder NIL, wenn das Array leer ist.)Wie greife ich auf die nicht-die-ersten Elemente eines Arrays in Swift zu?

Gibt es eine eingebaute Funktion, die den Rest des Arrays, ohne das erste Element zurück?

+2

Howzabout 'removeAtIndex:'? Knacke den ersten Gegenstand und du bist fertig. Oder nimm eine Scheibe 'arr [1 .. matt

+2

Nicht hilfreich Kommentar-weniger Downvote ist nicht hilfreich. @matt Ändert removeAtIndex das ursprüngliche Array? "Slice" ist vielleicht das, wonach ich suche, aber es ist ein bisschen peinlich - es ist nicht unvernünftig, eine neue Sprache mit vielgepriesenen funktionalen Features zu erwarten, um das zu erreichen. –

+1

Die Dokumente beantworten diese Fragen; du brauchst mich nicht zu fragen! – matt

Antwort

11

Es ist eine, die helfen könnten Sie bekommen, was Sie suchen:

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

Verwendung wie folgt aus:

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 hat Array seine eigene 'dropFirst'-Funktion, also einfach: 'let b = a.dropFirst()' – leanne

6

Co rrect Antwort für Swift 2.2, 3+:

let restOfArray = Array(array.dropFirst())

Update für Swift 3+:

als @leanne unten in den Kommentaren darauf hingewiesen, es sieht aus wie das jetzt ist möglich:

let restOfArray = array.dropFirst()

+2

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

+0

Es war vorher nicht möglich, ich bin froh, dass es repariert ist! Ich werde die Antwort später aktualisieren :) –

Verwandte Themen