Swift 程序如何从集合中移除空值

swiftserver side programmingprogramming更新于 2025/9/23 14:52:17

在 Swift 中,集合用于创建无序的唯一元素集合。在 Swift 中,为了在集合中存储 nil 值,您需要将集合定义为可选类型,因为 nil 是可选值。因此,为了从集合中移除空值,我们可以使用内置函数,例如 remove() 和 filter()。我们将结合示例详细讨论这两种方法。

方法 1:使用 remove(_:) 函数

remove(_:) 函数用于从给定集合中移除或删除指定元素。

语法

func remove(ele)

其中 ele 是我们要从指定集合中移除的元素。如果 eye 参数是给定集合的一部分,则此函数返回该参数的值。否则返回 nil。

示例

在下面的代码中,我们首先创建一个可选集来存储一个 nil 值。然后使用 remove(_:) 函数删除 nil 值,并显示更新后的集合。

import Foundation
import Glibc

// 创建可选类型集合以存储 nil 值
var mySet: Set<Int?> = [23, nil, 21, nil, 98, nil]

// 从可选集合中移除 null
mySet.remove(nil)

print("Set:", mySet)

输出

Set: [Optional(21), Optional(98), Optional(23)]

方法 2:使用 filter(_:) 函数

Swift 提供了一个名为 filter(_:) 的内置函数。此函数用于返回一个仅包含满足给定条件的元素的集合。

语法

func filter{col}

其中 col 是一个闭包,它从给定序列中获取一个元素并返回布尔值,该布尔值指示给定元素是否应包含在返回集合中。

示例

在下面的 Swift 示例中,我们首先创建一个可选集合来存储 null 和字符串值。然后使用 filter() 函数创建一个仅包含非 null 值的新集合,这里我们使用 {$0 != nil} 闭包来删除 nil 值。然后使用 map() 函数将可选集转换为非可选集。由于我们已经过滤掉了 nil 值,因此我们可以安全地使用强制解包运算符 ('!') 将可选值转换为非可选值。并显示结果。

import Foundation
import Glibc

// 创建可选类型 Set 来存储 nil 值
var mSet: Set<String?> = ["mox", "fox", nil, "kox", nil, "aox"]

// 过滤掉 null 值
let newSet = mSet.filter { $0 != nil }.map { $0! }

print("新的 Set 不包含 null 值:", newSet)

输出

新的 Set 不包含 null 值:["kox", "fox", "aox", "mox"]

总结

以上就是如何从 Set 中删除 null 值的方法。这里,如果 Set 元素的顺序发生变化,请不要感到困惑,因为 Set 是一个无序集合。此外,您不能在非可选 Set 中存储 nil,否则会报错。



相关文章



关于我们 | 隐私条款 | 学习路线
返回顶部