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.