2

この関数は、文字列の 2 つの配列の違いを取得するために作成しました。

func difference<T:Hashable>(array1: [T] ,array2:[T]) ->[T]? {
   let set1 = Set<T>(array1)
   let set2 = Set<T>(array2)
   let intersection = set1.symmetricDifference(set2)
   return Array(intersection)
}

Intなどのさまざまなタイプのジェネリック関数に拡張したいと思いDoubleます...

extension  Array where Element: Hashable {
   func difference<T:Hashable>(array2: [T]) -> [T] {
      let set1 = Set(self)
      let set2 = Set(array2)
      let intersection = set1.symmetricDifference(set2)
      return Array(intersection)
  }
}

この拡張機能を使用すると、次のエラーが発生します。

Generic parameter 'S' could not be inferred.

さまざまなアプローチを試みましたが、無駄でした。何が問題なのですか?

4

1 に答える 1