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, როდესაც გსურთ გარდაქმნა და ერთდროულად გაუქმება არავალიდური ან გამოტოვებული მნიშვნელობები.