2017-08-11 5 views
0

カスタムアレイタイプを作成しました。今では、実際の要素を引数として渡すことで配列の要素を削除できるもう1つのメソッドを追加したいと考えています。 カスタム配列の拡張をEquitableとして追加すると、これが達成できることは分かります。以下のプロキシ配列Equatableでエクステンションを作成してカスタム配列要素を削除する方法は?

extension ArrayProxy where T: Equatable { 
    mutating func removeElement(element: T) { 
    self.removeAtIndex(index: self.array.index(of: element)!) 
} 
} 
+1

あなたの質問は何ですか? – Sweeper

+0

質問を更新しました –

+0

実際には、removeElemetatにはアクセスできません。私は正しいか間違っているのか疑問に思っています。 –

答えて

0

フォースの私の拡張子は、エラーが発生することがあり、オプションの値をアンラップ

struct ArrayProxy<T> { 
var array: [T] = [] 

mutating func append(newElement: T) { 
    self.array.append(newElement) 

    print("Element added in download queue") 
    DownloadContent.downloadChaptersFromDownloadQueue() 
} 

mutating func removeAtIndex(index: Int) { 
    print("Removed object \(self.array[index]) at index \(index)") 
    self.array.remove(at: index) 
} 

subscript(index: Int) -> T { 
    set { 
     print("Set object from \(self.array[index]) to \(newValue) at index \(index)") 
     self.array[index] = newValue 
    } 
    get { 
     return self.array[index] 
    } 
    } 
} 

です:

以下は、プロキシ配列の私のコードです。

インデックスがある場合index(of:)は最初の一致インデックスのみを返します。

修正:

​​
関連する問題