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. jenkins配置.net mvc网站

    jenkins配置.net mvc网站 上一篇使用jenkins配置.net mvc网站进行持续集成一只是简单介绍了jenkins构建站点到本地服务器,这一篇,就来讲解如何部署站点到指定的服务器上面. ...

  2. 《深入了解Android:Wi-Fi、NFC和GPS音量》勘误表

    资源下载更新(我不知道为什么被115网盘屏蔽) 深入了解android它wifi-nfc-gps 115网盘礼包码:5lbee5qn4g5ghttp://115.com/lb/5lbee5qn4g5g ...

  3. 排列组合相关算法 python

    获取指定长度得全部序列 通过事件来表述这个序列,即n重伯努利实验(二项分布)的全部可能结果.比如时间a表示为: a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 假设每次实验为从 ...

  4. 活动图(Activity Diagram) - 项目分解文章

    案例基础上登录用户进行操作的每个模块. 1. 员 (1) 列车顺序表 (2) 货车装卸报告(数据处理) (3) 货车装卸报告(查看) 2. 管理员 (1) password管理 (2) 查看日志 (3 ...

  5. Source Insight 光标变粗设置NotePad++光标设置

    为了更好的查看文档和代码,避免半天都找不到光标的情况,故做此说明 Source Insight 光标变粗 菜单中 Options --->Preferences --->Typing -- ...

  6. Light OJ Dynamic Programming

    免费做一样新 1004 - Monkey Banana Problem 号码塔 1005 - Rooks 排列 1013 - Love Calculator LCS变形 dp[i][j][k]对于第一 ...

  7. WPF中两条路径渐变的探讨

    原文:WPF中两条路径渐变的探讨 我们在WPF中,偶尔也会涉及到两条路径作一些“路径渐变 ”.先看看比较简单的情形:如下图(关键点用红色圆点加以标识):(图1) 上面图1中的第1幅图可以说是最简单的路 ...

  8. HDU 1864最大报销额(一维背包)

    题目地址:HDU 1864 刚上来看着挺麻烦的..细致看了看原来好简单好简单...仅仅要去掉一些不符合要求的发票,剩下的就是最简单的背包问题了..对于小数问题,仅仅要*100就变成整数了. 代码例如以 ...

  9. CentOS构造SNMP

    <span style="font-size:14px;">本文介绍怎样在CentOS环境下配置一个简单的SNMP服务</span> 软件安装 切换到系统管 ...

  10. Code Forces 448C Painting Fence 贪婪的递归

    略有上升称号,最近有很多问题,弥补啊,各类竞赛滥用,来不及做出了所有的冠军.这个话题 这是一个长期记忆的主题.这是不是太困难,基本技能更灵活的测试,每次我们来看看这个问题可以被删除,处理然后分段层,贪 ...