Swift中共同拥有74个内建函数,可是在Swift官方文档(“The
Swift Programming Language
”)中仅仅记录了7中。剩下的67个都没有记录。
本文将列举Swift全部的内建函数。本文中提到的所谓的内建函数是指那些在Swift中不须要导入不论什么模块(如Foundation等)或者引用不论什么类就能够使用的函数。

abs(signedNumber): 返回给定的有符号数字的绝对值。

非常easy。可是没有在文档中记录。

  1. abs(-1) == 1
  2. abs(-42) == 42
  3. abs(42) == 42
 
contains(sequence, element): 假设给定的序列(如数组)包括特定的元素,则返回true。
  1. var languages = ["Swift", "Objective-C"]
  2. contains(languages, "Swift") == true
  3. contains(languages, "Java") == false
  4. contains([29, 85, 42, 96, 75], 42) == true
 
dropFirst(sequence): 返回一个去掉第一个元素的新序列(如数组)。

  1. var languages = ["Swift", "Objective-C"]
  2. var oldLanguages = dropFirst(languages)
  3. equal(oldLanguages, ["Objective-C"]) == true
 
dropLast(sequence): 返回一个的新序列(如数组),该序列去掉作为參数传递给函数的最后一个元素。

  1. var languages = ["Swift", "Objective-C"]
  2. var newLanguages = dropLast(languages)
  3. equal(newLanguages, ["Swift"]) == true
 
dump(object): 一个对象的内容转储到标准输出。

  1. var languages = ["Swift", "Objective-C"]
  2. dump(languages)
  3. // Prints:
  4. // ? 2 elements
  5. // - [0]: Swift
  6. // - [1]: Objective-C
 
equal(sequence1, sequence2): 假设序列1和序列2包括同样的元素,则返回true。
  1. var languages = ["Swift", "Objective-C"]
  2. equal(languages, ["Swift", "Objective-C"]) == true
  3. var oldLanguages = dropFirst(languages)
  4. equal(oldLanguages, ["Objective-C"]) == true
 
filter(sequence, includeElementClosure): 返回序列的一个元素,这个元素满足includeElementClosure所指定的条件。

  1. for i in filter(1...100, { $0 % 10 == 0 })
  2. {
  3. // 10, 20, 30, ...
  4. println(i)
  5. assert(contains([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], i))
  6. }
 
find(sequence, element): 再给定的序列中返回一个指定的索引,假设在序列中没有找到这个元素就返回nil。

  1. var languages = ["Swift", "Objective-C"]
  2. find(languages, "Objective-C") == 1
  3. find(languages, "Java") == nil
  4. find([29, 85, 42, 96, 75], 42) == 2
 
indices(sequence): 在指定的序列中返回元素的索引(零索引)。
  1. equal(indices([29, 85, 42]), [0, 1, 2])
  2. for i in indices([29, 85, 42]) {
  3. // 0, 1, 2
  4. println(i)
  5. }
 
join(separator, sequence): 返回一个由给定的分隔符分离出来的序列的元素。
  1. join(":", ["A", "B", "C"]) == "A:B:C"
  2. var languages = ["Swift", "Objective-C"]
  3. join("/", languages) == "Swift/Objective-C"
 
map(sequence, transformClosure): 假设transformClosure适用于所给序列中全部的元素,则返回一个新序列。
  1. equal(map(1...3, { $0 * 5 }), [5, 10, 15])
  2. for i in map(1...10, { $0 * 10 }) {
  3. // 10, 20, 30, ...
  4. println(i)
  5. assert(contains([10, 20, 30, 40, 50, 60, 70, 80, 90, 100], i))
  6. }
 
max(comparable1, comparable2, etc.): 返回函数所给參数中的最大值。

  1. max(0, 1) == 1
  2. max(8, 2, 3) == 8
 
maxElement(sequence): 返回所给序列的同类元素中的最大元素。
  1. maxElement(1...10) == 10
  2. var languages = ["Swift", "Objective-C"]
  3. maxElement(languages) == "Swift"
 
minElements(sequence): 返回所给序列的同类元素中的最小元素。
  1. minElement(1...10) == 1
  2. var languages = ["Swift", "Objective-C"]
  3. minElement(languages) == "Objective-C"
 
reduce(sequence, initial, combineClosure): 从第一个初始值開始对其进行combineClosure操作,递归式地将序列中的元素合并为一个元素。
  1. var languages = ["Swift", "Objective-C"]
  2. reduce(languages, "", { $0 + $1 }) == "SwiftObjective-C"
  3. reduce([10, 20, 5], 1, { $0 * $1 }) == 1000
 
reverse(sequence): 返回所给序列的倒序。
  1. equal(reverse([1, 2, 3]), [3, 2, 1])
  2. for i in reverse([1, 2, 3]) {
  3. // 3, 2, 1
  4. println(i)
  5. }
 
startsWith(sequence1, sequence2):假设序列1和序列2的起始元素相等,则返回true。
  1. startsWith("foobar", "foo") == true
  2. startsWith(10..100, 10..15) == true
  3. var languages = ["Swift", "Objective-C"]
  4. startsWith(languages, ["Swift"]) == true
 
例如以下列表为Swift中的74个内建函数。上文所描写叙述的函数是我觉得在日常开发中比較实用处的。当然我可能遗漏了一些经常使用函数。欢迎大家在评论中讨论,而且请用一个简短的代码段来展示怎样使用该函数。
  1. abs(...)
  2. advance(...)
  3. alignof(...)
  4. alignofValue(...)
  5. assert(...)
  6. bridgeFromObjectiveC(...)
  7. bridgeFromObjectiveCUnconditional(...)
  8. bridgeToObjectiveC(...)
  9. bridgeToObjectiveCUnconditional(...)
  10. c_malloc_size(...)
  11. c_memcpy(...)
  12. c_putchar(...)
  13. contains(...)
  14. count(...)
  15. countElements(...)
  16. countLeadingZeros(...)
  17. debugPrint(...)
  18. debugPrintln(...)
  19. distance(...)
  20. dropFirst(...)
  21. dropLast(...)
  22. dump(...)
  23. encodeBitsAsWords(...)
  24. enumerate(...)
  25. equal(...)
  26. filter(...)
  27. find(...)
  28. getBridgedObjectiveCType(...)
  29. getVaList(...)
  30. indices(...)
  31. insertionSort(...)
  32. isBridgedToObjectiveC(...)
  33. isBridgedVerbatimToObjectiveC(...)
  34. isUniquelyReferenced(...)
  35. join(...)
  36. lexicographicalCompare(...)
  37. map(...)
  38. max(...)
  39. maxElement(...)
  40. min(...)
  41. minElement(...)
  42. numericCast(...)
  43. partition(...)
  44. posix_read(...)
  45. posix_write(...)
  46. print(...)
  47. println(...)
  48. quickSort(...)
  49. reduce(...)
  50. reflect(...)
  51. reinterpretCast(...)
  52. reverse(...)
  53. roundUpToAlignment(...)
  54. sizeof(...)
  55. sizeofValue(...)
  56. sort(...)
  57. split(...)
  58. startsWith(...)
  59. strideof(...)
  60. strideofValue(...)
  61. swap(...)
  62. swift_MagicMirrorData_summaryImpl(...)
  63. swift_bufferAllocate(...)
  64. swift_keepAlive(...)
  65. toString(...)
  66. transcode(...)
  67. underestimateCount(...)
  68. unsafeReflect(...)
  69. withExtendedLifetime(...)
  70. withObjectAtPlusZero(...)
  71. withUnsafePointer(...)
  72. withUnsafePointerToObject(...)
  73. withUnsafePointers(...)
  74. withVaList(...)

Swift的74标准功能的更多相关文章

  1. iOS开发 - Swift实现清除缓存功能

    前言: 开发移动应用时,请求网络资源是再常见不过的功能.如果每次都去请求,不但浪费时间,用户体验也会变差,所以移动应用都会做离线缓存处理,其中已图片缓存最为常见. 但是时间长了,离线缓存会占用大量的手 ...

  2. iOS Swift WisdomScanKit图片浏览器功能SDK

    iOS Swift WisdomScanKit图片浏览器功能SDK使用 一:简介      WisdomScanKit 由 Swift4.2版编写,完全兼容OC项目调用. WisdomScanKit的 ...

  3. 联想ThinkPadE455实现FN禁用(F1-F12标准功能与特殊功能切换)

    系统:Win7 64 位     机型:联想ThinkPadE455笔记本 方法一:键盘Fn热键切换功能(亲测可用) Fn+Esc   FnLk  组合键方法启用或禁用Fn锁定功能 具体说明(这个逻辑 ...

  4. Swift - 短信发送功能的实现

    使用MessageUI.framework框架可以实现短信发送功能,步骤如下: (1)首先判断设备是否有发送短信功能 (2)如果设备允许发送短信,创建一个MFMessageComposeViewCon ...

  5. swift - 表格的编辑功能(添加、删除)

    表格(tableview)的确是一个很好用的控件,现在来实现一个编辑功能的实现,包含添加和删除,删除包括长按删除和左滑删除 效果图如下: 具体代码如下: 1.创建表格(这个表格有2个区,有区头和区尾) ...

  6. 通过ABAP的标准功能,寻找源代码中的字符串

    程序名称: *ABAP_SOURCE_SCAN 查找 作用:通过这个标准程序,可以在系统的源代码中进行字符串的查找!

  7. swift 实现复制粘贴功能。

    let past = UIPasteboard.generalPasteboard() past.string = pasteboardStr // pasteboardStr就是你要复制的字符串 S ...

  8. Form_通过FND_FNDFLUPL标准功能上传CSV控件(案例)

    2014-06-08 Created By BaoXinjian

  9. Form_如何通过标准功能查找数据源(概念)

    2014-06-01 Created By BaoXinjian

随机推荐

  1. SQL集合运算 差集 并集 交

    SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只 ...

  2. MySql之ALTER命令用法详细解读(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文详细解读了MySql语法中Alter命令的用法,这是一个用法比较多的语法,而且功能还是很强 ...

  3. 微渠道发展 BAE交通运输平台和java呼声,微信mysql数据库开发实例 --图文开发教程

    持续更新 BAE java开展mysql数据库 图文教程 BAE java语言发展mysql源码下载: 目前微信的发展.BAE开展.java开展.mysql教程开发非常,的介绍基于BAE平台.java ...

  4. js多个物体运动问题2

    问题1 http://www.cnblogs.com/huaci/p/3854216.html 在上一讲问题1,我们可以整理出2点: 1,定时器作为运动物体的属性 2,startMove方法,参数要传 ...

  5. ATL 创COM物

    我原来以前写dll创建过程,而直接使用LoadLibrary加载动态库. 但ATL提出了一个非常重要的特点是引入COM对象的概念. 首先. ATL active template library该活动 ...

  6. Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock’

    今天服务器遇到了一个很熟悉的问题 输入 #mysql -u root -p ERROR 2002 (HY000): Can't connect to local MySQL server throug ...

  7. [ACM] POJ 3686 The Windy's (二分图最小权匹配,KM算法,特殊建图)

    The Windy's Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 4158   Accepted: 1777 Descr ...

  8. Swing动画之游戏角色

    一.动画效果:实现了飞机飞行的动画效果,也实现了飞机的移动. 二.实现原理: 1.飞机飞行 的效果:事实上也还是重写paintComponent,依照一定的时间间隔更换图片就有了飞行的效果,动画就是更 ...

  9. SQL_substr功能测试

    原创作品.从 "深蓝blog" 博客,欢迎转载,请务必注明转载的来源.权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlong/articl ...

  10. VS2010使整个过程说明了安装包

    该项目的第一个版本出来,要成为一个包,很长一段时间没做了一些被遗忘,上差了差资料,写了一个,总结下,可能还不是非常完好,仅作參考. 1.首先在打开 VS2010    >新建>项目 2.创 ...