Swift 程式移除陣列中所有 'nil' 元素
在本文中,我們將學習如何編寫一個 Swift 程式來移除陣列中的所有 'nil' 元素。
到目前為止,我們都知道陣列可以儲存單一資料型別元素。但是 Swift 陣列也可以儲存多種資料型別的元素。為了在陣列中儲存多種資料型別,我們使用 [Any],其中 [Any] 指定地址可以儲存任何資料型別的元素。類似地,陣列也可以包含 nil 值。這裡我們使用以下方法來移除陣列中的 nil 元素。
使用 compactMap() 函式
使用 filter() 函式
方法 1:使用 compactMap() 函式
為了移除陣列中的所有 `nil` 元素,我們使用 compactMap() 函式。compactMap() 函式接收包含 nil 元素的序列作為輸入,並將結果轉換為僅包含非 nil 元素的陣列。
語法
func compactMap<elementOfResult>(_tClosure:(self.Element)throws -> elementOfResult?)rethrows -> [elementOfResult]
這裡,tClosure 是一個閉包,它接收給定序列中的專案作為引數,並返回一個可選值。
演算法
步驟 1 - 建立一個包含 nil 值的陣列。
步驟 2 - 列印原始陣列。
步驟 3 - 使用 compactMap() 函式移除陣列中的 nil 元素。
步驟 4 - 列印修改後的陣列。
示例
以下 Swift 程式用於移除陣列中的所有 'nil' 元素。
import Foundation
import Glibc
// Creating an array with nil value
let mArray: [String?] = ["cloud", "sky", nil, "moon", nil, "bird", nil]
print("Original Array:", mArray)
// Removing nil values
let noNilArray: [String] = mArray.compactMap { $0 }
print("Modified Array:", noNilArray)
輸出
Original Array: [Optional("cloud"), Optional("sky"), nil, Optional("moon"), nil, Optional("bird"), nil]
Modified Array: ["cloud", "sky", "moon", "bird"]
在上面的程式碼中,我們有一個字串型別的陣列。現在使用 compactMap() 函式,我們遍歷給定陣列的每個元素(從索引 0 開始),並從陣列中移除 nil 元素。因此,結果陣列僅包含非 nil 元素。
方法 2:使用 filter(_:) 函式
我們還可以使用 filter() 函式移除陣列中的 nil 元素。filter(_:) 函式返回一個數組,該陣列包含滿足給定條件的所有元素。
語法
func filter(_mClosure:(self.Element) throws -> Bool)rethrows->[Self.Element]
這裡,mClosure 是一個閉包,它接收給定序列中的專案作為引數,並返回一個布林值,指示是否應將該元素包含在返回的陣列中。
演算法
步驟 1 - 建立一個整數型別的陣列。
步驟 2 - 列印原始陣列。
步驟 3 - 使用 filter() 函式移除陣列中的 nil 元素
步驟 4 - 列印輸出。
示例
以下 Swift 程式用於移除陣列中的所有 'nil' 元素。
import Foundation
import Glibc
// Creating an array of integer types
var mArray = [23, nil, 4, 3, nil, 21, 12, nil, nil]
print("Original array:", mArray)
// Removing nil elements
var res = mArray.filter { $0 != nil }
print("Modified array:", res)
輸出
Original array: [Optional(23), nil, Optional(4), Optional(3), nil, Optional(21), Optional(12), nil, nil] Modified array: [Optional(23), Optional(4), Optional(3), Optional(21), Optional(12)]
在上面的程式碼中,我們有一個整數型別的陣列。現在我們使用 filter() 函式來移除給定陣列中的 nil 元素。為此,我們在 filter() 函式中傳遞 `{ $0 != nil }` 作為閉包。此閉包接收給定陣列中的元素(從索引 0 到結束),並檢查每個元素是否不等於 nil。如果條件為真,則將其新增到結果陣列中。否則,它將移除該 nil 元素。
結論
這就是我們如何移除陣列中所有 'nil' 元素的方法。這裡兩種方法都返回準確的結果,並且適用於任何資料型別。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP