この関数は、文字列の 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.
さまざまなアプローチを試みましたが、無駄でした。何が問題なのですか?