Swift程序移除集合中的空值


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

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

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

语法

func remove(ele)

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

示例

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

import Foundation
import Glibc

// Creating optional type set to store nil value 
var mySet: Set<Int?> = [23, nil, 21, nil, 98, nil]

// Removing null from optional set
mySet.remove(nil)

print("Set:", mySet)

输出

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

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

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

语法

func filter{col}

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

示例

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

import Foundation
import Glibc

// Creating optional type set to store nil value 
var mSet: Set<String?> = ["mox", "fox", nil, "kox", nil, "aox"]

// Filter out null values
let newSet = mSet.filter { $0 != nil }.map { $0! }

print("New Set with no null values:", newSet)

输出

New Set with no null values: ["kox", "fox", "aox", "mox"]

结论

因此,这就是我们如何从集合中移除空值的方法。这里,如果集合元素的顺序发生变化,请不要感到困惑,因为集合是无序集合。此外,您不能在非可选集合中存储nil,如果您尝试这样做,将会收到错误。

更新于:2023年4月24日

315 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.