Fonctions d’ordre supérieur en Objective-C | par Allen | Meilleure programmation

Online Coding Courses for Kids

Oui, le diable est toujours dans les détails. C’est pourquoi «mais» est si important tout le temps. En tant que développeur avec des années d’expérience, vous vous demandez peut-être si c’est une bonne pratique en Objective-C? La raison en est que la sécurité des types devient plus ou moins la responsabilité des développeurs. Après tout, Swift et Objective-C ne partagent pas la même philosophie sur l’inférence de type et la sécurité de type à bien des égards. Ma suggestion est d’ajouter un restricteur de classe pour chaque fonction afin d’améliorer la sécurité. Bien que l’ajout d’un restricteur de classe puisse devenir trop verbeux par écrit, je pense toujours que c’est plus sûr et meilleur à long terme.

L’extrait ci-dessous est de démontrer l’utilisation avec un restricteur de classe. La mise en œuvre complète est disponible sur GitHub ici.

  • Carte: Itérez un tableau et appliquez la même opération de bloc à chaque élément qu’il contient.
    NSLog(@”%@”, [array map:^id(id obj) { return [(NSString *)obj uppercaseString]; } class:[NSString class]]);
  • Filtre: Itère un tableau et renvoie des éléments qui remplissent une condition.
    NSLog(@”%@”, [array filter:^BOOL(id obj) { return [(NSString *)obj isEqualToString:@”o”]; } class:[NSString class]]);
  • Réduire: Combinez tous les éléments d’un tableau pour créer une seule sortie.
  • FlatMap: Aplatir un tableau de tableaux.
    NSLog(@”%@”, [array flatMap:^id(id obj) { return obj; } class:[NSString class]]);


Close Menu