Pourquoi l'extension Array suivante se bloque si le tableau utilisé avec elle est de type UInt, mais fonctionne si le tableau est de type Int ou String?Fusion rapide en tant que plantage générique avec UInt
extension Array
{
func indexOf<T:Equatable>(value:T) -> Int?
{
for (i, val) in enumerate(self)
{
if (val as T == value)
{
return i;
}
}
return nil;
}
}
var a:[UInt] = [243, 234, 1, 212, 3, 56, 88, 11, 77];
var i = a.indexOf(234);
erreur produite:
exécution aire de jeu a échoué: erreur: l'exécution a été interrompue, motif: EXC_BREAKPOINT (code = EXC_I386_BPT, subcode = 0x0). Le processus a été laissé à l'endroit où il a été interrompu, utilisez "thread return -x" pour revenir à l'état avant l'évaluation de l'expression. * fil # 1: tid = 0x27a3c, 0x00000001079d3f27 libswift_stdlib_core.dylib swift_dynamicCast + 1063, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0) * frame #0: 0x00000001079d3f27 libswift_stdlib_core.dylib
swift_dynamicCast + 1063 cadre # 1: 0x00000001137bbbc8
Où est la différence avec votre question précédente (maintenant supprimée) http://stackoverflow.com/questions/24971573/extending-swift-array-with-indexof-crashes-with-uint-typed-array? –
Où est la pertinence de votre commentaire par rapport à votre commentaire dans ma question précédente ?! – BadmintonCat
duplication possible de [Array extension pour supprimer l'objet par valeur] (http://stackoverflow.com/questions/24938948/array-extension-to-remove-object-by-value) –