2016-03-31 62 views
0

這裏是一個快速的協議,並擴展到範圍轉換成數組:Swift:這個語句在Extension中意味着什麼?

protocol ArrayRepresentable { 
    typealias ArrayType 

    func toArray() -> [ArrayType] 
} 

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

我不明白以下行的含義:

return [Element](self) 

是什麼回報?它如何設法將元素追加到現有的數組?

回答

1

基本上它會創建一個新的數組,其中包含範圍中的每個元素。您可以使用[Int]()創建一個空數組,

在這種情況下,Element是Range中包含項目的類型。當它調用數組init時,它將範圍本身作爲參數傳遞,並且初始值設定項遍歷範圍中的元素並將其添加到數組中。