Swift中共有74个内建函数

Swift中共有74个内建函数,但是在Swift官方文档(“The Swift Programming Language”)中只记录了7中。剩下的67个都没有记录。

本文将列举Swift所有的内建函数。本文中提到的所谓的内建函数是指那些在Swift中不需要导入任何模块(如Foundation等)或者引用任何类就可以使用的函数。

abs(signedNumber): 返回给定的有符号数字的绝对值。很简单,但是没有在文档中记录。

  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(...)

欢迎讨论,敬请勘误!

时间: 2024-10-10 05:16:05

Swift中共有74个内建函数的相关文章

[转]Swift中的标准函数

本文转自cocoaChina,原文链接:点这里 Swift中的标准函数 本文将列举Swift所有的内建函数.本文中提到的所谓的内建函数是指那些在Swift中不需要导入任何模块(如Foundation等)或者引用任何类就可以使用的函数. Swift中共有74个内建函数,但是在Swift官方文档(“The Swift Programming Language”)中只记录了7中.剩下的67个都没有记录. 本文将列举Swift所有的内建函数.本文中提到的所谓的内建函数是指那些在Swift中不需要导入任何

swift中代理的使用

下面以自定义的UITableViewCell的代理为例,记录一下swift中代理的使用 controller中的代码如 1 // 2 // ViewController.swift 3 // simpleDemo 4 // 5 // Created by liubo on 16/7/25. 6 // Copyright © 2016年 liubo. All rights reserved. 7 // 8 9 import UIKit 10 11 class ViewController: UIV

Swift中编写单例的正确方式

Swift中编写单例的正确方式 2015-12-07 10:23 编辑: yunpeng.hu 分类:Swift 来源:CocoaChina翻译活动 14 10647 Objective-CSwift单例 招聘信息: Cocos2d-x 工程师 cocos2dx手游客户端主程 wp开发 iOS开发工程师 iOS软件工程师 iOS研发工程师 iOS讲师 iOS开发工程师 iOS高级开发工程师 iOS 高级软件工程师 iOS高级开发工程师 本文由CocoaChina译者leon(社区ID)翻译自kr

Swift面向对象基础(上)——Swift中的枚举

Swift中枚举 学习笔记来自<极客学院> 1 import Foundation 2 3 /**********1*Swift定义枚举的语法格式*************/ 4 /* 5 enum 枚举名 { 6 使用case关键字列出所有枚举值 7 枚举的其他成员 8 } 9 */ 10 //定义枚举 11 enum Season{ 12 case Spring 13 case Summer 14 case Fall 15 case Winter 16 } 17 //使用一个case列举所

如何在Swift中创建自定义控件

更新通知:这篇引导教程由Mikael Konutgan使用iOS 8和Swift语言重新制作,在Xcode6和7上测试通过.原始教程是由Colin Eberhardt团队制作的. 用户界面控件是许多应用的重要组成部分.使用这些控件,可以让用户查看应用的内容或与他们的应用进行交互.苹果提供了一个控件集,像UITextField, UIButton 和 UISwitch.灵活使用这些工具箱中已经存在的控件,可以让你创建各种各样的用户界面. 但是,有的时候你可能需要做一些与众不同的事情:库中的控件已经

Swift 中的函数(下)

学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 /***********嵌套函数*************/ 4 func getMathFunc(#type: String) -> (Int) -> Int{ 5 func squre(num:Int) -> Int{ 6 return num*num 7 } 8 func cube(num:

Swift 中的函数(上)

学习来自<极客学院:Swift中的字典> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 //函数 4 /*1.定义函数的语法格式 5 func 函数名(形参列表) -> 返回值类型 { 6 //可执行语句组成的函数 7 } 8 */ 9 //定义和调用函数 10 func sayHello(personName: String) -> String{ 11 return "Hel

Swift 中的Range和NSRange不同

Swift中的Ranges和Objective-C中的NSRange有很大的不同,我发现在处理Swift中Ranges相关的问题的时候,总是要花费比我想象的更多的时间.不过,现在回过头来看看,发现Swift中的Ranges的使用还是比较合理的,但是想要正确的使用Ranges真的需要一些特别的技巧. 看一个例子,下面这段代码展示的是截取以指定的字符开头和以指定的字符结尾的子字符串: ? 1 2 3 4 5 6 var str = "Hello, playground"   let ran

Swift 中的基础语法(二)

1.Swift 中的函数 /// 函数的定义 /// /// - Parameters: /// - x: 形参 /// - y: 形参 /// - Returns: 返回值 func sum(x: Int, y: Int) -> Int { return x + y } print(sum(x: 10, y: 20))   /* 外部参数就是在形参前面加了一个字 外部参数不会影响函数内部的细节 外部参数会让外部调用看起来更加直观 外部参数如果使用了'_',在外部调用函数时,会忽略形参的名字 &qu