Sobes.tech
Junior — Middle

Ποια είναι η διαφορά μεταξύ της χρήσης των μεθόδων map και compactMap κατά την επεξεργασία συλλογών;

sobes.tech AI

Απάντηση από AI

Οι μέθοδοι map και compactMap χρησιμοποιούνται για τη μετατροπή στοιχείων μιας συλλογής, αλλά διαφέρουν στον τρόπο διαχείρισης των προαιρετικών τιμών.

  • Το map εφαρμόζει μια λειτουργία σε όλα τα στοιχεία και επιστρέφει έναν πίνακα με τα αποτελέσματα, συμπεριλαμβανομένου του nil αν η λειτουργία επιστρέφει προαιρετικό.
  • Το compactMap εφαρμόζει τη λειτουργία και αγνοεί αυτόματα όλες τις τιμές nil, επιστρέφοντας έναν πίνακα μόνο με μη-nil στοιχεία.

Παράδειγμα:

let numbers = ["1", "2", "three", "4"]

// το `map` επιστρέφει [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]

// το `compactMap` επιστρέφει [Int], αγνοώντας το nil
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]

Χρησιμοποιήστε το compactMap όταν θέλετε να μετατρέψετε και ταυτόχρονα να απορρίψετε μη έγκυρες ή απουσιάζουσες τιμές.