Junior — Middle
Kuidas erinevad meetodite map ja compactMap kasutamine kogumite töötlemisel?
sobes.tech AI
Vastus AI-lt
Meetodid map ja compactMap kasutatakse kolleksiooni elementide teisendamiseks, kuid nad erinevad selles, kuidas nad töötlevad valikulisi väärtusi.
maprakendab funktsiooni kõigile elementidele ja tagastab tulemuste massiivi, kaasa arvatudnil, kui funktsioon tagastab valikulise väärtuse.compactMaprakendab funktsiooni ja automaatselt loobub kõigistnilväärtustest, tagastades ainult mitte-nilelementidega massiivi.
Näide:
let numbers = ["1", "2", "three", "4"]
// `map` tagastab [Int?]
let mapped = numbers.map { Int($0) } // [1, 2, nil, 4]
// `compactMap` tagastab [Int], ignoreerides nil-e
let compactMapped = numbers.compactMap { Int($0) } // [1, 2, 4]
Kasuta compactMap, kui soovid teisendada ja samal ajal kehtetuid või puuduvad väärtused eemaldada.