2016-03-31 9 views
0

が配列の範囲を変換するために迅速なプロトコルと拡張機能です:スイフト:エクステンションのこのステートメントは何を意味していますか?ここで

protocol ArrayRepresentable { 
    typealias ArrayType 

    func toArray() -> [ArrayType] 
} 

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

私は次の行の意味を理解していない:

return [Element](self) 

それが何を返すのですか?どのように既存の配列に要素を追加することができますか?

答えて

1

基本的には、範囲内の各要素で新しい配列を作成します。

たとえば、[Int]()を使用して空のInts配列を作成できます。

この場合、Elementは、範囲に含まれるアイテムのタイプです。配列initを呼び出すと、範囲自体がパラメータとして渡され、イニシャライザは範囲内の要素を移動し、それぞれを配列に追加します。

関連する問題