Swift 程序 反轉(zhuǎn) Set
默認(rèn)情況下,Swift 中的數(shù)組和集合元素的順序是固定的。愛(ài)掏網(wǎng) - it200.com但是有時(shí)候我們需要以不同的順序訪問(wèn)它們,這就需要將 Swift 程序反轉(zhuǎn)。愛(ài)掏網(wǎng) - it200.com在本文中,我們將學(xué)習(xí)如何使用 Swift 提供的函數(shù)和方法來(lái)反轉(zhuǎn) Set。愛(ài)掏網(wǎng) - it200.com
我們可以使用 Swift 內(nèi)置的 reverse() 函數(shù)來(lái)反轉(zhuǎn) Set 中的元素。愛(ài)掏網(wǎng) - it200.com這個(gè)函數(shù)可以操作任意集合類型的對(duì)象。愛(ài)掏網(wǎng) - it200.com下面是一個(gè)簡(jiǎn)單的示例:
var numbersSet = Set([1, 2, 3, 4, 5])
let reversedSet = numbersSet.reversed()
print("Original set: ")
print(numbersSet)
print("Reversed set: ")
print(reversedSet)
輸出結(jié)果如下:
Original set:
[5, 4, 3, 2, 1]
Reversed set:
[1, 2, 3, 4, 5]
從以上代碼中可以看出,我們只需調(diào)用 Set 的 reverse() 方法并將其結(jié)果存儲(chǔ)在新變量中即可完成集合的反轉(zhuǎn)。愛(ài)掏網(wǎng) - it200.com
與其他集合類型一樣,我們也可以使用數(shù)組的 reversed() 方法來(lái)反轉(zhuǎn)元素:
var numbersSet = Set([1, 2, 3, 4, 5])
let reversedArray = numbersSet.reversed().map { $0 }
print("Original set: ")
print(numbersSet)
print("Reversed array: ")
print(reversedArray)
這將輸出以下結(jié)果:
Original set:
[5, 4, 3, 2, 1]
Reversed array:
[1, 2, 3, 4, 5]
在這里,我們首先使用 Set 的 reverse() 方法反轉(zhuǎn)了元素,然后使用 map() 函數(shù)將其結(jié)果轉(zhuǎn)換為數(shù)組。愛(ài)掏網(wǎng) - it200.com
使用 reversed() 方法
我們也可以使用 Set 的 reversed() 方法來(lái)反轉(zhuǎn)元素。愛(ài)掏網(wǎng) - it200.com這個(gè)方法同樣適用于任何集合類型的對(duì)象。愛(ài)掏網(wǎng) - it200.com以下示例將演示如何使用 reversed() 方法:
var numbersSet = Set([1, 2, 3, 4, 5])
let reversedSet = numbersSet.reversed()
print("Original set: ")
print(numbersSet)
print("Reversed set: ")
print(reversedSet)
運(yùn)行以上代碼,將得到以下輸出:
Original set:
[1, 2, 3, 4, 5]
Reversed set:
ReversedCollection<[Int]>([5, 4, 3, 2, 1])
從結(jié)果可知,reversed() 方法返回一個(gè) ReversedCollection 對(duì)象。愛(ài)掏網(wǎng) - it200.com它是一個(gè)只讀對(duì)象,你不能修改它或者在其上執(zhí)行其他任何的操作。愛(ài)掏網(wǎng) - it200.com如果你希望能夠在反轉(zhuǎn)后進(jìn)行修改,可以使用 Array() 函數(shù)將其轉(zhuǎn)換為可變數(shù)組。愛(ài)掏網(wǎng) - it200.com
以下示例演示如何使用 reversed() 方法并將其轉(zhuǎn)換為數(shù)組:
var numbersSet = Set([1, 2, 3, 4, 5])
let reversedArray = Array(numbersSet.reversed())
print("Original set: ")
print(numbersSet)
print("Reversed array: ")
print(reversedArray)
運(yùn)行以上代碼,將得到以下輸出:
Original set:
[1, 2, 3, 4, 5]
Reversed array:
[5, 4, 3, 2, 1]
可以看出,使用 reversed() 方法我們同樣可以將 Set 反轉(zhuǎn),并且使用 Array() 函數(shù)將其轉(zhuǎn)換為數(shù)組。愛(ài)掏網(wǎng) - it200.com
使用 sorted() 方法
我們可以使用 sorted() 方法對(duì) Set 進(jìn)行排序,這樣反轉(zhuǎn)時(shí)會(huì)更加容易。愛(ài)掏網(wǎng) - it200.com以下示例演示使用 sorted() 方法對(duì) Set 進(jìn)行反轉(zhuǎn):
var numbersSet = Set([1, 2, 3, 4, 5])
let sortedArray = numbersSet.sorted(by: >)
print("Original set: ")
print(numbersSet)
print("Sorted array: ")
print(sortedArray)
print("Reversed array: ")
print(sortedArray.reversed())
運(yùn)行以上代碼將得到以下輸出:
Original set:
[5, 2, 1, 4, 3]
Sorted array:
[5, 4, 3, 2, 1]
Reversed array:
[1, 2, 3, 4, 5]
可以看出,我們首先將 Set 使用 sorted() 方法進(jìn)行排序,然后使用 .reversed() 方法將其反轉(zhuǎn)。愛(ài)掏網(wǎng) - it200.com在進(jìn)行排序時(shí),我們必須指定排序方式,這里使用大于符號(hào)進(jìn)行排序。愛(ài)掏網(wǎng) - it200.com
使用 Collection 的 reversed() 方法
Swift 中的 Collection 是所有集合類型的父協(xié)議,因此所有集合類型都可以使用 reversed() 方法。愛(ài)掏網(wǎng) - it200.com下面的代碼演示如何使用 Collection 的 reversed() 方法:
var citiesSet = Set(["Shanghai", "Beijing", "Guangzhou", "Shenzhen"])
let reversedArray = citiesSet.reversed()
print("Original set: ")
print(citiesSet)
print("Reversed array: ")
print(reversedArray)
運(yùn)行以上代碼將得到以下輸出:
Original set:
["Shenzhen", "Guangzhou", "Shanghai", "Beijing"]
Reversed array:
ReversedCollection<[String]>("[Shenzhen, Guangzhou, Shanghai, Beijing]")
與之前的示例相同,reversed() 方法返回一個(gè) ReversedCollection 對(duì)象。愛(ài)掏網(wǎng) - it200.com你也可以使用 Array() 函數(shù)將其轉(zhuǎn)換為可變數(shù)組。愛(ài)掏網(wǎng) - it200.com
var citiesSet = Set(["Shanghai", "Beijing", "Guangzhou", "Shenzhen"])
let reversedArray = Array(citiesSet.reversed())
print("Original set: ")
print(citiesSet)
print("Reversed array: ")
print(reversedArray)
運(yùn)行以上代碼將得到以下輸出:
Original set:
["Shenzhen", "Guangzhou", "Shanghai", "Beijing"]
Reversed array:
["Beijing", "Shanghai", "Guangzhou", "Shenzhen"]
結(jié)論
反轉(zhuǎn) Set 在 Swift 中很容易。愛(ài)掏網(wǎng) - it200.com你可以使用內(nèi)置的 reverse() 方法、reversed() 方法,也可以使用 sorted() 方法對(duì)集合進(jìn)行排序后再反轉(zhuǎn)。愛(ài)掏網(wǎng) - it200.com任何集合類型都可以使用 Collection 的 reversed() 方法,并且可以將其結(jié)果轉(zhuǎn)換為數(shù)組進(jìn)行操作。愛(ài)掏網(wǎng) - it200.com這些方法可以幫助你改變?cè)氐捻樞颍员愀玫貪M足你的特定需求。愛(ài)掏網(wǎng) - it200.com