2016-03-31 8 views
0

Hier ist ein schnelles Protokoll und Erweiterung um einen Bereich zu einem Array zu konvertieren:Swift: Was bedeutet diese Aussage in Extension?

protocol ArrayRepresentable { 
    typealias ArrayType 

    func toArray() -> [ArrayType] 
} 

extension Range : ArrayRepresentable { 
    func toArray() -> [Element] { 
     return [Element](self) 
    } 
} 

Ich verstehe nicht, die Bedeutung der folgenden Zeile:

return [Element](self) 

Was bedeutet es zurückgeben? Wie schafft es das Element an ein bestehendes Array anzuhängen?

Antwort

1

Im Grunde erstellt es ein neues Array mit jedem der Elemente in dem Bereich.

Sie könnten ein leeres Array von Ints erstellen, z. B. mit [Int]().

In diesem Fall ist Element der Typ der Elemente "enthalten" im Bereich. Wenn es die Arrays init aufruft, übergibt es den Bereich selbst als einen Parameter und dieser Initialisierer durchläuft die Elemente in dem Bereich und fügt jedes zu dem Array hinzu.