您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Swift中创建扩展以从数组中过滤nil

在Swift中创建扩展以从数组中过滤nil

不可能限制为通用结构或类定义的类型-数组旨在与任何类型一起使用,因此您不能添加适用于类型子集的方法。类型约束只能在声明泛型时指定

实现所需功能的唯一方法是创建全局函数或静态方法-在后一种情况下:

extension Array {
    static func filterNils(array: [T?]) -> [T] {
        return array.filter { $0 != nil }.map { $0! }
    }
}

var array:[Int?] = [1, nil, 2, 3, nil]

Array.filterNils(array)

或简单地使用compactMap(以前为flatMap),该方法可用于删除所有nil值:

[1, 2, nil, 4].compactMap { $0 } // Returns [1, 2, 4]
Swift 2022/1/1 18:14:31 有529人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶