设为首页 加入收藏

TOP

常用的 74个内置函数(一)
2017-10-09 13:25:47 】 浏览:4558
Tags:常用 内置 函数
  1 // MARK: 1.断言 assert,参数如果为ture则继续,否则抛出异常
  2 let number = 3
  3 
  4 //第一个参数为判断条件,第二各参数为条件不满足时的打印信息
  5 assert(number >= 3,"number 不大于 3")
  6 
  7 //如果断言被处罚(number <= 3),将会强制结束程序,并打印相关信息
  8 // assertion failed: number 不大于 3
  9 // 断言可以引发程序终止,主要用于调试阶段。比如下面的情况:
 10 /*
 11 * 自定义整形数组索引越界问题
 12 * 向函数传值,无效值引发函数不能完成相应任务
 13 * Optional类型数据为nil值,引发的程序crash
 14 */
 15 
 16 // MARK: 2.获取序列的元素个数 characters.count (countElements)
 17 let str = "foo"
 18 
 19 //打印元素个数
 20 print("count == \(str.characters.count)")
 21 //打印结果
 22 // count == 3
 23 
 24 // MARK: 3.返回最大最小值min(),max()
 25 max(10, 20)
 26 min(1, 3, 5, 9, 8)
 27 
 28 // MARK: 4.排序 sorted (sort)
 29 let ary  = ["B", "A", "C"]
 30 
 31 //默认排序(升序)
 32 let ary1 = ary.sorted()
 33 print(ary1)
 34 //打印结果
 35 // ["A", "B", "C"]
 36 
 37 //自定义排序(降序)
 38 let ary2 = ary.sorted {
 39 //    $1 < $0
 40     $0.1 < $0.0
 41 }
 42 print(ary2)
 43 //打印结果
 44 // ["C", "B", "A"]
 45 // 可以看出,可以用0、1、2来表示调用闭包中参数,0指代第一个参数,1指代第二个参数,2指代第三个参数,以此类推n+1指代第n个参数,后的数字代表参数的位置,一一对应。
 46 
 47 // MARK: 5.map函数
 48 let arr = [2,1,3]
 49 
 50 //数组元素进行2倍放大
 51 let doubleArr = arr.map {$0 * 2}
 52 print(doubleArr)
 53 //打印结果
 54 //[4, 2, 6]
 55 
 56 //数组Int转String
 57 let moneyArr = arr.map { "¥\($0 * 2)"}
 58 print(moneyArr)
 59 //打印结果
 60 //["¥4", "¥2", "¥6"]
 61 
 62 //数组转成元组
 63 let groupArr = arr.map {($0, "\($0)")}
 64 print(groupArr)
 65 //打印结果
 66 //[(2, "2"), (1, "1"), (3, "3")]
 67 
 68 // map(sequence, transformClosure): 如果transformClosure适用于所给序列中所有的元素,则返回一个新序列。
 69 
 70 // MARK: 6.flapMap函数
 71 let flapMap_ary  = [["B", "A", "C"],["1","5"]]
 72 
 73 //flapMap函数会降低维度
 74 //flapMap_ary.flatMap(<#T##transform: (Array<String>) throws -> ElementOfResult?##(Array<String>) throws -> ElementOfResult?#>)
 75 let flapMapAry = flapMap_ary.flatMap{$0}
 76 print(flapMapAry)
 77 //打印结果
 78 //["B", "A", "C", "1", "5"] // 二维数组变成了一维
 79 
 80 // MARK: 7.筛选函数filter
 81 let numbers = [1, 2, 3, 4, 5, 6]
 82 
 83 //获取偶数值
 84 let evens = numbers.filter{$0 % 2 == 0}
 85 print(evens)
 86 //打印结果
 87 //[2, 4, 6]
 88 
 89 // MARK: 8.reduce函数
 90 let arr_reduce = [1, 2, 4,]
 91 
 92 //对数组各元素求和
 93 let sum = arr_reduce.reduce(0) {$0 + $1}
 94 print(sum)
 95 //打印结果
 96 //7
 97 //arr_reduce.reduce(<#T##initialResult: Result##Result#>, <#T##nextPartialResult: (Result, Int) throws -> Result##(Result, Int) throws -> Result#>)
 98 //对数组各元素求积
 99 let product =  arr_reduce.reduce(1) {$0 * $1}
100 print(product)
101 //打印结果
102 //8
103 
104 // MARK: 9.dump(object): 一个对象的内容转储到标准输出
105 dump(arr_reduce)
106 
107 /*
108  
109  ? 3 elements
110  - 1
111  - 2
112  - 4
113  
114  */
115 // MARK: 10.indices(sequence): 在指定的序列中返回元素的索引(零索引)
116 for i in arr_reduce.indices {
117     print(i)
118     // 0 1 2
119 }
120 
121 // MARK: 11.一些在编程中经常会用到的函数
122 abs(-1) == 1 //获取绝对值
123 ["1","6","4"].contains("2") == false  //判断序列是否包含元素
124  ["a","b"].dropLast() == ["a"]  //剔除最后一个元素
125 ["a","b"].dropFirst() == ["b"] //剔除第一个元素
126 ["a","b"].elementsEqual([&qu
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇swift内存管理中的引用计数 下一篇swift3.0 ?代码创建经典界面的九..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目