Swift中Array冷門方法拾遺

2021-09-11 10:04:51 字數 1238 閱讀 2593

如果明確的知道乙個陣列的容量大小,可以呼叫這個方法告訴系統這個陣列至少需要的容量,避免在陣列新增元素過程中重複的申請記憶體。

var alphabet = [string]()

alphabet.reservecapacity(26)複製**

lexicographic 是詞典的意思。這個方法宣告在 anycollection 裡。會按照順序比較兩個集合元素的大小。

比如下面**展示了如何比較兩個字串版本號的大小:

let storeversion = "3.14.10"

let currentversion = "3.130.10"

extension

string

}}//true

storeversion.versiontoint().lexicographicallyprecedes(currentversion.versiontoint())複製**

partition 會根據條件把集合裡的元素重新排序,符合條件的元素移動到最後,返回乙個兩個部分分界元素的索引。

var numbers = [30, 40, 20, 30, 30, 60, 10]

let p = numbers.partition(by: )

// p == 5

// numbers == [30, 10, 20, 30, 30, 60, 40]

let head = numbers.prefix(upto: p)

// head == [30, 10, 20, 30, 30]

let end = numbers.suffix(from: p)

// end == [60, 40]

複製**

再通過prefix和suffix可以分別獲得集合的兩段元素。

根據next裡的閉包來生成下乙個元素,和reduce完全相反。特別的是這個函式返回的是乙個 unfoldsequence ,即裡面的值是lazy的,只要在訪問時才生成,這也可能是乙個無限的佇列。

for x in sequence(first: 0.1, next: ).prefix(while: ) 複製**
似乎特別適合用來尋祖,當next閉包返回的是nil時佇列就終止了:

for view in sequence(first: someview, next: ) 複製**

Swift中級學習 陣列Array

swift中級學習 陣列array 陣列 有序的順序集合 var nums int 1,2,3,4,5 var strs1 string s h k f 字串陣列 var strs2 character s h k f 字元陣列 var strs3 string s h k f strs1 strs...

Swift 4 0 陣列 Array 學習

定義陣列常量 常量只有讀操作 let array1 int 11,55,5 let array2 11,55,5 定義陣列變數var array int 這是我最喜歡的 var array0 int 10,20,30 初始化並賦值 var array1 int array var array2 ar...

js中Array方法歸類解析

因為它常用,而且面試必問 pop 刪除並返回陣列最後乙個元素 push 從末尾給陣列新增元素,返回新陣列length值 reverse 顛倒陣列元素,返回顛倒後的陣列 shift 刪除並返回第乙個元素值 sort 陣列排序 splice 刪除指定位置開始指定長度的元素,返回被刪除的專案。unshif...