74个Swift标准库函数
本文译自 Swift Standard Library: Documented and undocumented built-in functions in the Swift standard library – the complete list with all 74 functions。我不是原作者,我只是勤劳的翻译工:)文中作者没有提及他是如何发现这么多未在文档中体现的内置函数的,估计是反编译的结果。我测试了好多个都能用,而且Xcode还会给出语法提示:)
Swift包含了74个内置函数,但在The Swift Programming Langage
一书中只介绍了其中的7个,其它的都没有在文档中体现。
这篇文章列举出了所有的内置Swift函数。文中所谓的内置函数
是指无需引入任何模块(比如说Fundation等)即可以直接使用的函数。
下面先来看看7个在文档中提到的内置函数:
|
|
下面列出一些很实用,但未在文档中体现的内置函数:
- abs(signedNumber):返回数字的绝对值
|
|
- contains(sequence, element):如果某个序列
sequence
(比如说一个数组)包含指定的元素element,则返回true
,否则返回false
。
|
|
- dropFirst(sequence):返回一个去掉了首个元素的、新的序列(比如一个新数组)。
|
|
- dropLast(sequence):返回一个去掉了最后一个元素的、新的序列(比如一个新数组)。
|
|
- dump(object):打印出某个对象
object
的所有信息
|
|
- equal(sequence1, sequence2):判断两个序列是否相等
|
|
- filter(sequence, includeElementClosure):对序列
sequence
中每个元素都执行includeElementClosure闭包,并将所有闭包结果为true
的元素合成一个新序列sequence
并返回。
|
|
- find(sequence, element):返回序列
sequence
中某元素element
的位置index
。如果序列中不存在此元素,则返回nil
。
|
|
- indices(sequence):返回序列
sequence
中所有元素的位置(indices
是index
的复数)
|
|
- join(separator, sequence):将序列
sequence
通过分隔符separator
连成一个字符串,并返回此字符串。
|
|
- map(sequence, transformClosure):对序列
sequence
中每个元素都执行includeElementClosure
闭包,并将所有闭包的结果合成一个新序列sequence
并返回。
|
|
- max(comparable1, comparable2, etc.):返回参数中的最大值。
|
|
- maxElement(sequence):返回序列sequence中的最大值。
|
|
- minElements(sequence):返回序列sequence中的最小值。
|
|
- reduce(sequence, initial, combineClosure):给定一个序列
sequence
,以及一个初始值initial
,然后将initial
和序列里的第1个元素作为参数传入combineClosure
中进行运算,得到的结果保存到initial
;然后再将initial
和第2个元素传入combineClosure
中计算,结果保存到initial
;重复计算直到所有sequence
中的元素都计算完毕,并返回最终的initial
值。
|
|
- startsWith(sequence1, sequence2):如果序列
sequence1
中开头的元素跟序列sequence2
中的所有元素都相等,则返回true
,否则返回false
。
|
|
上面提到的函数是我认为在Swift编程中会经常用到的函数。下面将列出完整的74个函数列表。
完整74个内置函数:
abs(…)
advance(…)
alignof(…)
alignofValue(…)
assert(…)
bridgeFromObjectiveC(…)
bridgeFromObjectiveCUnconditional(…)
bridgeToObjectiveC(…)
bridgeToObjectiveCUnconditional(…)
c_malloc_size(…)
c_memcpy(…)
c_putchar(…)
contains(…)
count(…)
countElements(…)
countLeadingZeros(…)
debugPrint(…)
debugPrintln(…)
distance(…)
dropFirst(…)
dropLast(…)
dump(…)
encodeBitsAsWords(…)
enumerate(…)
equal(…)
filter(…)
find(…)
getBridgedObjectiveCType(…)
getVaList(…)
indices(…)
insertionSort(…)
isBridgedToObjectiveC(…)
isBridgedVerbatimToObjectiveC(…)
isUniquelyReferenced(…)
join(…)
lexicographicalCompare(…)
map(…)
max(…)
maxElement(…)
min(…)
minElement(…)
numericCast(…)
partition(…)
posix_read(…)
posix_write(…)
print(…)
println(…)
quickSort(…)
reduce(…)
reflect(…)
reinterpretCast(…)
reverse(…)
roundUpToAlignment(…)
sizeof(…)
sizeofValue(…)
sort(…)
split(…)
startsWith(…)
strideof(…)
strideofValue(…)
swap(…)
swift_MagicMirrorData_summaryImpl(…)
swift_bufferAllocate(…)
swift_keepAlive(…)
toString(…)
transcode(…)
underestimateCount(…)
unsafeReflect(…)
withExtendedLifetime(…)
withObjectAtPlusZero(…)
withUnsafePointer(…)
withUnsafePointerToObject(…)
withUnsafePointers(…)
withVaList(…)
原文链接:http://swiftist.org/topics/126
update:这篇原文写于14年6月.当时的Swift版本还是1.0. 现在已经是swift2.0了.因此可能有些变化.
我会找时间把里面的内置函数都过一遍.看是否有什么变化