map 和 compactmap的区别

43 阅读1分钟

map是映射,就是简单映射

compactmap是去掉nil值的映射,只保留真实数值

let 数字字符串 = ["1", "2", "三", "4"]
let 转换结果 = 数字字符串.compactMap { Int($0) }
 print(转换结果) // 输出: [1, 2, 4]

也可以用在Optional里面

let 名字们: [String?] = ["小明", nil, "小红", nil, "小刚"] 
let 有效名字 = 名字们.compactMap { $0 }
print(有效名字) // 输出: ["小明", "小红", "小刚"]
  1. 典型应用场景:

    解析 JSON 字段,跳过无效值

  2. 把一组 String 转换成 Int

  3. 处理 [T?] → [T]

  4. 从复杂对象中提取不为 nil 的字段