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