Swift的74个常用内置函数介绍

2020-01-08 22:47:16丽君

复制代码
var languages = ["Swift", "Objective-C"]
find(languages, "Objective-C") == 1
find(languages, "Java") == nil
find([29, 85, 42, 96, 75], 42) == 2

 

indices(sequence):返回序列sequence中所有元素的位置(indices是index的复数)

复制代码
equal(indices([29, 85, 42]), [0, 1, 2])
for i in indices([29, 85, 42]) {
 // 0, 1, 2
 println(i)
}
join(separator, sequence):将序列sequence通过分隔符separator连成一个字符串,并返回此字符串。
复制代码
join(":", ["A", "B", "C"]) == "A:B:C"
var languages = ["Swift", "Objective-C"]
join("/", languages) == "Swift/Objective-C"

 

map(sequence, transformClosure):对序列sequence中每个元素都执行includeElementClosure闭包,并将所有闭包的结果合成一个新序列sequence并返回。

复制代码
equal(map(1...3, { $0 * 5 }), [5, 10, 15])
for i in map(1...10, { $0 * 10 }) {
 // 10, 20, 30, ...
 println(i)
 assert(contains([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], i))
}
max(comparable1, comparable2, etc.):返回参数中的最大值。
复制代码
max(0, 1) == 1
max(8, 2, 3) == 8
maxElement(sequence):返回序列sequence中的最大值。
复制代码
maxElement(1...10) == 10
var languages = ["Swift", "Objective-C"]
maxElement(languages) == "Swift"
minElements(sequence):返回序列sequence中的最小值。
复制代码
minElement(1...10) == 1
var languages = ["Swift", "Objective-C"]
minElement(languages) == "Objective-C"

 

reduce(sequence, initial, combineClosure):给定一个序列sequence,以及一个初始值initial,然后将initial和序列里的第1个元素作为参数传入combineClosure中进行运算,得到的结果保存到initial;然后再将initial和第2个元素传入combineClosure中计算,结果保存到initial;重复计算直到所有sequence中的元素都计算完毕,并返回最终的initial值。