我試圖更好地理解不同的 Swift 基礎知識。我在 Paul Hudson 的視頻中碰到了反轉陣列的概念。
他說,陣列將按照與原始陣列相同的順序列印,但其他操作將在陣列的反轉版本上進行。
所以我這樣做了:
let presidents = ["Bush", "Obama", "Trump", "Biden"]
let reversedPresidents = presidents.reversed()
print(reversedPresidents[2])
我收到了:
No exact matches in call to subscript
錯誤。
為什么?
uj5u.com熱心網友回復:
它解釋了反向檔案。
首先,它回傳型別 ReversedCollection<Array<Element>>
其次,它并沒有真正改變排列順序,如解釋在這里:
或具有雙向索引的普通集合 c:
c.reversed()不創建新存盤c.reversed().map(f)急切地映射并回傳一個新陣列
換句話說:reversed()能夠以相反的順序迭代提供的陣列,但不會創建一個反轉的陣列
所以如果你想創建一個反向陣列,你可以這樣做:
let reversedPresidents = presidents.reversed().map { $0 }
或者,如上面評論中所述,
let reversedPresidents = Array(presidents.reversed())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/409125.html
標籤:
