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, երբ ցանկանում եք փոխարկել և միաժամանակ հեռացնել անվավեր կամ բացակա արժեքները։