一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

Swift 程序 從 Set 刪除空值含代碼

Swift 程序 從 Set 刪除空值

Swift 是一門開發(fā) iOS 和 MacOS 應(yīng)用最常用的編程語(yǔ)言之一。愛掏網(wǎng) - it200.com在 Swift 中,Set 是一種常用的集合類型,它用于存儲(chǔ)不可重復(fù)的值。愛掏網(wǎng) - it200.com但是,在實(shí)際的開發(fā)過(guò)程中,我們經(jīng)常會(huì)遇到需要在 Set 中刪除空值的情況。愛掏網(wǎng) - it200.com本文將為大家介紹如何使用 Swift 從 Set 中刪除空值,希望能夠給大家?guī)?lái)幫助。愛掏網(wǎng) - it200.com

在 Swift 中,Set 是一種無(wú)序且不重復(fù)的數(shù)據(jù)集合,它可以用來(lái)存儲(chǔ)各種類型的元素。愛掏網(wǎng) - it200.com與數(shù)組不同,Set 對(duì)于其內(nèi)部的元素順序并不關(guān)心,而是只關(guān)心元素的唯一性。愛掏網(wǎng) - it200.com我們可以使用 Set 來(lái)存儲(chǔ)數(shù)字、字符串、類實(shí)例等等,具體的實(shí)現(xiàn)方式如下:

var evenNumbers = Set<Int>()
evenNumbers.insert(2)
evenNumbers.insert(4)
evenNumbers.insert(6)
evenNumbers.insert(8)

var words = Set<String>()
words.insert("Swift")
words.insert("is")
words.insert("awesome")

從上面的示例代碼中,我們可以看到如何創(chuàng)建一個(gè)空的 Set,并向 Set 中添加元素。愛掏網(wǎng) - it200.com由于 Set 中的每個(gè)元素都是唯一的,所以當(dāng)添加重復(fù)元素時(shí),Set 會(huì)自動(dòng)忽略這些重復(fù)元素。愛掏網(wǎng) - it200.com例如,在上面的示例代碼中,我們添加了多個(gè)偶數(shù),但是只有一個(gè)偶數(shù)被添加到了 Set 中。愛掏網(wǎng) - it200.com

如何從 Set 中刪除空值?

在實(shí)際的開發(fā)過(guò)程中,我們經(jīng)常需要處理一些包含空值的數(shù)據(jù),這些空值可能是因?yàn)闊o(wú)效輸入、數(shù)據(jù)缺失或者其他某些原因造成的。愛掏網(wǎng) - it200.com如果我們將這些空值直接傳遞給其他函數(shù)或者保存在集合中,就有可能導(dǎo)致代碼出錯(cuò)。愛掏網(wǎng) - it200.com因此,我們需要一種有效的方式來(lái)從集合中刪除這些空值。愛掏網(wǎng) - it200.com

Swift 中提供了一個(gè)方便的方式來(lái)刪除 Set 中的空值,那就是使用 filter() 方法。愛掏網(wǎng) - it200.comfilter() 方法接受一個(gè)閉包作為參數(shù),用于指定需要過(guò)濾掉的元素。愛掏網(wǎng) - it200.com在閉包中,我們可以對(duì)每個(gè)元素進(jìn)行判斷,如果元素是空值,則返回 false,否則返回 true。愛掏網(wǎng) - it200.com當(dāng) filter() 方法返回 true 時(shí),該元素就會(huì)被保留在集合中,反之則被過(guò)濾掉。愛掏網(wǎng) - it200.com示例代碼如下:

var numbers: Set<Int?> = [1, nil, 3, nil, 5, nil, 7, nil, 9]

numbers = numbers.filter { $0 != nil }

在上面的示例代碼中,我們創(chuàng)建了一個(gè)包含多個(gè)整數(shù)和空值的 Set,然后通過(guò) filter() 方法刪除了其中的空值。愛掏網(wǎng) - it200.com在閉包中,我們使用了 0 占位符來(lái)表示 Set 中的每個(gè)元素,然后通過(guò)比較0 和 nil 的值來(lái)判斷當(dāng)前元素是否為空。愛掏網(wǎng) - it200.com

如何使用 compactMap() 方法從 Set 中刪除空值?

除了 filter() 方法外,Swift 還提供了一個(gè) compactMap() 方法來(lái)進(jìn)行集合的變換操作。愛掏網(wǎng) - it200.comcompactMap() 方法會(huì)接受一個(gè)閉包作為參數(shù),并對(duì)集合中的每個(gè)元素進(jìn)行變換。愛掏網(wǎng) - it200.com在閉包中,我們可以根據(jù)需要返回一個(gè)新的元素,或者返回 nil。愛掏網(wǎng) - it200.com如果返回 nil,則該元素會(huì)被過(guò)濾掉,否則會(huì)將返回值添加到新的集合中。愛掏網(wǎng) - it200.com

與 filter() 方法不同,compactMap() 方法只會(huì)過(guò)濾掉返回 nil 的元素,而對(duì)于其他元素則不做任何處理,因此可以在一定程度上提高程序的效率。愛掏網(wǎng) - it200.com示例代碼如下:

var strings: Set<String?> = ["Hello", nil, "world", nil, "!", nil, nil]

strings = strings.compactMap { $0 }

在上面的示例代碼中,我們創(chuàng)建了一個(gè)包含多個(gè)字符串和空值的 Set,然后使用 compactMap() 方法刪除了其中的空值。愛掏網(wǎng) - it200.com由于 compactMap() 方法只會(huì)刪除返回 nil 的元素,因此我們?cè)陂]包中直接返回 $0 即可。愛掏網(wǎng) - it200.com

如何在消耗最小的情況下從 Set 中刪除空值?

除了上面介紹的兩種方式外,我們還可以使用 reduce() 方法來(lái)刪除 Set 中的空值。愛掏網(wǎng) - it200.com與 filter() 和 compactMap() 方法不同,reduce() 方法會(huì)對(duì)集合中的每個(gè)元素進(jìn)行聚合操作,并返回一個(gè)最終結(jié)果。愛掏網(wǎng) - it200.com在聚合過(guò)程中,我們可以過(guò)濾掉不需要的元素,或者對(duì)元素進(jìn)行變換。愛掏網(wǎng) - it200.com示例代碼如下:

var names: Set<String?> = ["Alice", nil, "Bob", nil, "Charlie", "David", nil, "Eva"]

names = names.reduce(into: Set<String>()) {
    if let name = 1 {0.insert(name)
    }
}

在上面的示例代碼中,我們創(chuàng)建了一個(gè)包含多個(gè)字符串和空值的 Set,然后使用 reduce() 方法刪除了其中的空值。愛掏網(wǎng) - it200.com在 reduce() 方法的閉包中,我們使用 0 和1 占位符分別表示當(dāng)前計(jì)算結(jié)果和當(dāng)前元素。愛掏網(wǎng) - it200.com由于我們需要在閉包中添加元素到新的 Set 中,因此使用了 $0.insert(name) 的方式將元素添加到 Set 中,同時(shí)省略了 return 語(yǔ)句。愛掏網(wǎng) - it200.com

結(jié)論

使用 Swift 從 Set 中刪除空值可以通過(guò) filter()、compactMap() 和 reduce() 三種方式實(shí)現(xiàn)。愛掏網(wǎng) - it200.com在實(shí)際開發(fā)中,我們需要根據(jù)具體的場(chǎng)景選擇不同的方法,并根據(jù)需要進(jìn)行優(yōu)化,從而在消耗最小的情況下實(shí)現(xiàn)集合的操作。愛掏網(wǎng) - it200.com希望本文可以對(duì)大家在 Swift 開發(fā)中遇到的問(wèn)題提供一些幫助。愛掏網(wǎng) - it200.com

聲明:所有內(nèi)容來(lái)自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
發(fā)表評(píng)論
更多 網(wǎng)友評(píng)論0 條評(píng)論)
暫無(wú)評(píng)論

返回頂部

主站蜘蛛池模板: 日韩中文字幕一区二区三区 | 色综合久久88色综合天天 | 色婷婷国产精品 | 国产精品久久精品 | 天天躁人人躁人人躁狂躁 | 精品久久久久久久久久久久久 | 欧美在线播放一区 | 在线播放中文字幕 | 国产精品久久久久久久久久三级 | 国产精品久久久久久久久久久免费看 | 黄色大片免费网站 | 美日韩视频| 尤物视频在线免费观看 | 蜜月aⅴ国产精品 | 91精品一区二区 | 日韩一级精品视频在线观看 | 亚洲欧美中文字幕在线观看 | 成在线人视频免费视频 | 午夜影院在线观看免费 | www亚洲免费国内精品 | 蜜臀av日日欢夜夜爽一区 | 黄频视频| 欧美精品一区二区三区四区 在线 | 日日做夜夜爽毛片麻豆 | 久久亚洲一区 | 日韩免费中文字幕 | 欧美综合一区二区 | 成人欧美一区二区三区1314 | 成人午夜激情 | 久久综合久久综合久久综合 | 欧美成人一区二区 | 久久久久久国产精品免费免费 | 成人高清视频在线观看 | 日韩欧美在线观看 | 国产久视频 | 日韩网站在线观看 | 91国产精品 | 中文字幕一区二区三区精彩视频 | 在线视频成人 | 黄色中文字幕 | 一区二区日韩 |