Swift标准函数

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

abs(-1) == 1

abs(-42) == 42

abs(42) == 42

contains(sequence, element): 如果给定的序列(如数组)包含特定的元素,则返回true,否则返回false。

var languages = ["Swift", "Objective-C"]

contains(languages, "Swift") == true

contains(languages, "Java") == false

contains([29, 85, 42, 96, 75], 42) == true

dropFirst(sequence): 返回一个去掉第一个元素的新序列(如数组)。

var languages = ["Swift", "Objective-C"]

var oldLanguages = dropFirst(languages)

equal(oldLanguages, ["Objective-C"]) == true

dropLast(sequence): 返回一个的新序列(如数组),该序列去掉作为参数传递给函数的最后一个元素。

var languages = ["Swift", "Objective-C"]

var newLanguages = dropLast(languages)

equal(newLanguages, ["Swift"]) == true

dump(object): 一个对象的内容转储到标准输出。

var languages = ["Swift", "Objective-C"]

dump(languages)

// Prints:

// ? 2 elements

// - [0]: Swift

// - [1]: Objective-C

equal(sequence1, sequence2): 如果序列1和序列2包含相同的元素,则返回true。

var languages = ["Swift", "Objective-C"]

equal(languages, ["Swift", "Objective-C"]) == true

var oldLanguages = dropFirst(languages)

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。

var languages = ["Swift", "Objective-C"]

find(languages, "Objective-C") == 1

find(languages, "Java") == nil

find([29, 85, 42, 96, 75], 42) == 2

indices(sequence): 在指定的序列中返回元素的索引(零索引)。

equal(indices([29, 85, 42]), [0, 1, 2])

for i in indices([29, 85, 42]) {

// 0, 1, 2

println(i)

}

join(separator, sequence): 返回一个由给定的分隔符分离出来的序列的元素。

join(":", ["A", "B", "C"]) == "A:B:C"

var languages = ["Swift", "Objective-C"]

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.): 返回函数所给参数中的最大值。

max(0, 1) == 1

max(8, 2, 3) == 8

maxElement(sequence): 返回所给序列的同类元素中的最大元素。

  1. maxElement(1...10) == 10
  2. var languages = ["Swift", "Objective-C"]
  3. maxElement(languages) == "Swift"

minElements(sequence): 返回所给序列的同类元素中的最小元素。

minElement(1...10) == 1

var languages = ["Swift", "Objective-C"]

minElement(languages) == "Objective-C"

reduce(sequence, initial, combineClosure): 从第一个初始值开始对其进行combineClosure操作,递归式地将序列中的元素合并为一个元素。

var languages = ["Swift", "Objective-C"]

reduce(languages, "", { $0 + $1 }) == "SwiftObjective-C"

reduce([10, 20, 5], 1, { $0 * $1 }) == 1000

reverse(sequence): 返回所给序列的倒序。

equal(reverse([1, 2, 3]), [3, 2, 1])

for i in reverse([1, 2, 3]) {

// 3, 2, 1

println(i)

}

startsWith(sequence1, sequence2):如果序列1和序列2的起始元素相等,则返回true。

startsWith("foobar", "foo") == true

startsWith(10..100, 10..15) == true

var languages = ["Swift", "Objective-C"]

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-26 18:01:59

Swift标准函数的相关文章

Swift的74个标准函数

Swift中共有74个内建函数,但是在Swift官方文档("The Swift Programming Language")中只记录了7中.剩下的67个都没有记录. 本文将列举Swift所有的内建函数.本文中提到的所谓的内建函数是指那些在Swift中不需要导入任何模块(如Foundation等)或者引用任何类就可以使用的函数. abs(signedNumber): 返回给定的有符号数字的绝对值.很简单,但是没有在文档中记录. abs(-1) == 1 abs(-42) == 42 ab

[转]Swift中的标准函数

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

Swift学习笔记(三)

六 函数 Swift的统一的功能语法足够灵活来表达任何东西,无论是甚至没有参数名称的简单的C风格的函数表达式,还是需要为每个本地参数和外部参数设置复杂名称的Objective-C语言风格的函数.参数提供默认值,以简化函数调用,并通过设置在输入输出参数,在函数执行完成时修改传递的变量. Swift中的每个函数都有一个类型,包括函数的参数类型和返回类型.您可以方便的使用此类型像任何其他类型一样,这使得它很容易将函数作为参数传递给其他函数,甚至从函数中返回函数类型.函数也可以写在其他函数中来封装一个嵌

Swift2.0语言教程之Swift2.0语言中的标准函数

Swift2.0语言教程之Swift2.0语言中的标准函数 Swift2.0中的标准函数 函数除了可以根据参数列表的有无分为无参函数和有参函数,还可以从定义角度分为用户自定义函数和标准函数两种.以上的示例都是用户自定函数.Swift提供了74个标准函数,这些函数都可以直接去使用,不需要进行定义.本节将针对常用的标准函数进行详细的讲解. Swift2.0中的绝对值函数abs() abs()函数的功能是求数值的绝对值.其语法形式如下: abs(数值) 函数的返回值是一个零或者正数. [示例7-17]

Apple Swift编程语言新手教程

Apple Swift编程语言新手教程 作者: 日期: gashero 2014-06-03 FROM:http://gashero.iteye.com/blog/2075324 文件夹 1   简单介绍 2   Swift入门 3   简单值 4   控制流 5   函数与闭包 6   对象与类 7   枚举与结构 1   简单介绍 今天凌晨Apple刚刚公布了Swift编程语言,本文从其公布的书籍<The Swift Programming Language>中摘录和提取而成.希望对各位的

swift 深入理解Swift的闭包

我们可用swift的闭包来定义变量的值. 先来一个简单的例子大家先感受感受. 定义一个字符串的变量的方法: 直接赋值 var str="JobDeer" 还可以用闭包的方式定义: var str:String={ return "JobDeer" }() 闭包还可以这么定义,省略了等号和括号: var str:String{ return "JobDeer" } 闭包中可以定义get方法. var str:String{ get{ return

在Swift结构体中如何实现写时复制?

结构体(Struct)在Swift语言中占有重要地位,在Swift标准库中,大约有90%的公开类型都是结构体,包括我们常用的Array.String.Dictionary.结构体相比类,一个最重要的特性就是它是值类型,而类似引用类型.值类型是通过复制值来赋值的,而不是引用同一个内存地址,这样就不存在数据共享的问题,能防止意外的数据改变,并且它是线程安全的. 举一个很简单的例子,在objc中,数组是类,是引用类型,在Swift中,数组是结构体,是值类型.因此下面的代码中: let array1 =

Swift学习之位移枚举的按位或运算

在OC里面我们经常遇到一些枚举值可以多选的,需要用或运算来把这些枚举值链接起来,这样的我们称为位移枚举,但是在swift语言里面却不能这么做,下面来讲解一下如何在swift里面使用 OC的位移枚举的区分 //位移枚举typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) { UIViewAutoresizingNone = 0, UIViewAutoresizingFlexibleLeftMargin = 1 << 0, UIViewAutores

Swift - 用UIScrollView实现视差动画效果

效果 源码 https://github.com/YouXianMing/Swift-Animations // // MoreInfoView.swift // Swift-Animations // // Created by YouXianMing on 16/8/18. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class MoreInfoView: UIView { var imageV