map是映射,就是简单映射
compactmap是去掉nil值的映射,只保留真实数值
let 数字字符串 = ["1", "2", "三", "4"]
let 转换结果 = 数字字符串.compactMap { Int($0) }
print(转换结果) // 输出: [1, 2, 4]
也可以用在Optional里面
let 名字们: [String?] = ["小明", nil, "小红", nil, "小刚"]
let 有效名字 = 名字们.compactMap { $0 }
print(有效名字) // 输出: ["小明", "小红", "小刚"]
-
典型应用场景:
解析 JSON 字段,跳过无效值
-
把一组 String 转换成 Int
-
处理 [T?] → [T]
-
从复杂对象中提取不为 nil 的字段