J'ai une classe AAA qui contient un tableau générique. Depuis article pourrait ne pas être équivalent, donc je ne le code pas comme class AAA<Item: Equatable>
.Swift Tableau générique Coulée équivalente
Je voudrais ajouter une fonction de suppression dans la classe AAA qui est disponible lorsque l'élément est équivalent. En appelant cette fonction, il appellera une fonction dans l'extension de tableau.
Depuis L'élément n'est pas Equitable par défaut, le code suivant n'est pas capable de compiler.
class AAA<Item>
{
var items = [Item]()
func remove(item: Item)
{
items.remove(object: item)
}
}
extension Array where Element: Equatable
{
// Remove first collection element that is equal to the given `object`:
mutating func remove(object: Element)
{
if let index = index(of: object)
{
remove(at: index)
}
}
}
Dans l'étape suivante, j'essaie de convertir les articles et article dans assimilables. Cependant, je ne trouve aucun moyen de vérifier et de lancer le tableau éléments dans un tableau avec des éléments Equatable.
func remove<ItemEquatable: Item> (item: ItemEquatable) where ItemEquatable: Equatable
{
items.remove(object: item)
}
Une idée ou suggestion? Merci