Sobes.tech
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.

  • map rakendab funktsiooni kõigile elementidele ja tagastab tulemuste massiivi, kaasa arvatud nil, kui funktsioon tagastab valikulise väärtuse.
  • compactMap rakendab funktsiooni ja automaatselt loobub kõigist nil väärtustest, tagastades ainult mitte-nil elementidega 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.