当前位置: 首页 > news >正文

广西医科大学网站建设仙居网站建设贴吧

广西医科大学网站建设,仙居网站建设贴吧,wordpress和织梦哪个好,百度推广开户多少钱目录 0 绪论 1 数组的创建和初始化 2.数组遍历 2.1通过键值对遍历 2.2 通过forEach遍历 2.3 通过for in遍历 2.3.1 for in 搭配 enumerated 2.3.2 for in的另一种形式 2.3.2 for in 搭配 indices 2.4 通过Iterator遍历器遍历 3 数组的操作 3.1 contains 判断数组包含…目录 0 绪论 1 数组的创建和初始化 2.数组遍历 2.1通过键值对遍历 2.2 通过forEach遍历 2.3 通过for in遍历 2.3.1 for in 搭配 enumerated 2.3.2 for in的另一种形式 2.3.2 for in 搭配 indices 2.4 通过Iterator遍历器遍历 3 数组的操作 3.1 contains 判断数组包含元素 3.2   allSatisfy(_:) 判断数组的每一个元素都符合给定的条件 4.查找比较 4.1 数组查找 4.1 数组比较大小 min ,max 4.2在参数多个的时候对数组查找 5 数组添加删除操作 5.1append插入元素 5.2 insert 插入元素 5.3 remove移除元素 5.4 移除多个元素(ArraySlice) 5.4.1 通过 Drop 得到 ArraySlice 5.4.2  通过 prefix 得到 ArraySlice 5.4.3  通过 suffix 得到 ArraySlice 5.4.4 通过 Range 得到 ArraySlice 5.5 ArraySlice 转为 Array 5.6 ArraySlice 和原 Array 相互独立 6 数组排序 6.1 随机打乱数组顺序 6.2  数组倒序 6.3数组的分组 6.4 数组的顺序排序 6.5数组元素交换位置 7 数组的拼接 7.1 字符串数组拼接 7.2元素为 Sequence 数组的拼接 8 总结 0 绪论 今天来学习一下swifi的数组废话不说直接撸代码吧。 1 数组的创建和初始化 let array [1,2,3,4] let array [Int](1...4) var array: [String] [] var array [String]()let chars Array(welcome) print(chars)let numbers Array(1...20) print(numbers)let chars Array(repeating: AI, count: 5) print(chars)/** 输出结果如下[w, e, l, c, o, m, e][1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][AI, AI, AI, AI, AI]*/ 2.数组遍历 2.1通过键值对遍历 let students [zhangsan: 15,lisi: 16,wangwu: 17] let names Array(students.keys) let ages Array(students.values) print(names) print(ages)/** 输出结果如下[zhangsan, wangwu, lisi][15, 17, 16]*/ 2.2 通过forEach遍历 let numbers [Int](0...4) numbers.forEach{ (num) inif num 3{//此处不能使用 continue ,break关键字使用return也只能退出当次循环return}print(num) }/** 输出结果如下0124*/ 2.3 通过for in遍历 2.3.1 for in 搭配 enumerated var numbers [Int](0...5) for(index,num)in numbers.enumerated(){//同时得到索引和值 enumerated()print(the index is: \(index),the value is \(num))if num 3 {//此处能使用 break关键字} }/** 输出结果如下the index is: 1,the value is 1the index is: 2,the value is 2the index is: 3,the value is 3the index is: 4,the value is 4the index is: 5,the value is 5*/ 2.3.2 for in的另一种形式 var numbers [Int](2...6) for i in 0..numbers.count{print(the index is: \(i),the valuse is: \(numbers[i])) }/**输出结果如下the index is: 0,the valuse is: 2the index is: 1,the valuse is: 3the index is: 2,the valuse is: 4the index is: 3,the valuse is: 5the index is: 4,the valuse is: 6*/ 2.3.2 for in 搭配 indices for in 的另一种形式 (索引 indices)startIndex 返回第一个元素的位置对于数组来说永远都是 0。endIndex 返回最后一个元素索引 1 的位置对于数组来说等同于count 。 如果数组为空startIndex 等于 endIndex 。 var numbers [Int](2...6) for i in numbers.indices{print(the index is: \(i),the valuse is: \(numbers[i])) }/**输出结果如下the index is: 0,the valuse is: 2the index is: 1,the valuse is: 3the index is: 2,the valuse is: 4the index is: 3,the valuse is: 5the index is: 4,the valuse is: 6*/ 2.4 通过Iterator遍历器遍历 使用 Iterator 遍历数组 let numbers [Int](0...6) var numIterator numbers.makeIterator() while let num numIterator.next(){print(the value is: \(num)) }/** 输出结果如下the value is: 2the value is: 3the value is: 4the value is: 5the value is: 6*/ 3 数组的操作 3.1 contains 判断数组包含元素 contains(_:) 判断数组是否包含给定元素contains(where:) 判断数组是否包含符合给定条件的元素 let array [56,42,30,8,63,89,102,6,19,27,34] print(array.contains(63)) print(array.contains(where: {$0 100}))/** 输出结果如下truetrue*/ 3.2   allSatisfy(_:) 判断数组的每一个元素都符合给定的条件 let array [Int](0...10) print(array.allSatisfy({ $0 5})) print(array.allSatisfy({$0 10}))  /** 输出结果如下falsefalse*/ 4.查找比较 4.1 数组查找 first 返回数组第一个元素(optional)如果数组为空返回 nil 。last 返回数组最后一个元素(optional)如果数组为空返回 nil 。first(where:)返回数组第一个符合给定条件的元素(optional)。last(where:) 返回数组最后一个符合给定条件的元素(optional)。 let array [12,56,48,69,120,3,7,59,25,56,75] print(array.first) print(array.last) print(array.first(where: { $0 45})) print(array.last(where: { $0 45}))/** 输出结果如下Optional(12)Optional(75)Optional(56)Optional(75)*/ firstIndex(of:) 返回给定的元素在数组中出现的第一个位置(optional)lastIndex(of:) 返回给定的元素在数组中出现的最后一个位置(optional)firstIndex(where:) 返回符合条件的第一个元素的位置(optional)lastIndex(where:) 返回符合条件的最后一个元素的位置(optional) let array [12,56,48,69,120,3,7,59,25,56,75] print(array.firstIndex(of: 56)) print(array.lastIndex(of: 56)) print(array.firstIndex(where: { $0 45})) print(array.lastIndex(where: { $0 45}))/** 输出结果如下Optional(1)Optional(9)Optional(1)Optional(10)*/ 4.1 数组比较大小 min ,max min() 返回数组中最小的元素max() 返回数组中最大的元素min(by:) 利用给定的方式比较元素并返回数组中的最小元素max(by:) 利用给定的方式比较元素并返回数组中的最大元素 let array [12,56,48,69,120,3,7,59,25,56,75] print(array.min()) print(array.max())/** 输出结果如下Optional(3)Optional(120)*/ let array [(zhangsan,26),(lisi,56)] print(array.min(by: {a,b in a.1 b.1 })) print(array.max(by: {a,b in a.1 b.1}))/** 输出结果如下Optional((lisi, 56))Optional((zhangsan, 26))*/ 4.2在参数多个的时候对数组查找 let array [(zhangsan,26),(lisi,56),(wagnwu,32),(niuli,105)] print(array.min(by: {(a,b) - Bool ina.1 b.1 }))print(array.max(by: {(a,b) - Bool ina.1 b.1 }))/** 输出结果如下Optional((zhangsan, 26))Optional((niuli, 105))*/ 5 数组添加删除操作 5.1append插入元素 append(_:) 在末尾添加一个元素append(contentsOf: ) 在末尾添加多个元素 var array [Int](1...5) array.append(15) print(array) array.append(contentsOf: 8...15) print(array)/** 输出结果如下[1, 2, 3, 4, 5, 15][1, 2, 3, 4, 5, 15, 8, 9, 10, 11, 12, 13, 14, 15]*/ 5.2 insert 插入元素 insert(_:at:) 在指定的位置插入一个元素insert(contentsOf: at:) 在指定位置插入多个元素 var array [Int](1...5) array.insert(200, at: 2) print(array) array.insert(contentsOf: -9...(-1), at: 0) print(array)/** 输出结果如下[1, 2, 200, 3, 4, 5][-9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 200, 3, 4, 5]*/ 5.3 remove移除元素 remove(at:) 移除并返回指定位置的一个元素removeFirst() 移除并返回数组的第一个元素(移除数组前面多个元素)removeLast() 移除并返回数组的最后一个元素(移除数组后面多个元素)popLast() 移除并返回数组的最后一个元素(optional)如果数组为空返回nil 。removeSubrange(_:) 移除数组中给定范围的元素。removeAll() 移除数组所有元素。removeAll(keepingCapacity:) 移除数组所有元素保留数组容量 var chars: [Character] [a,b,c,d,e] chars.insert(contentsOf: nihao, at: 0) print(chars) let removeChar chars.remove(at: 1) print(removeChar) print(chars)/** 输出结果如下[n, i, h, a, o, a, b, c, d, e]i[n, h, a, o, a, b, c, d, e]*/ var chars: [Character] [a,b,c,d,e] chars.insert(contentsOf: welcome, at: 0) print(chars) let removeChar2 chars.removeFirst() print(removeChar2) print(chars)let removeChar chars.removeLast() print(removeChar) print(chars)chars.removeSubrange(1...3) print(chars)let removeNum chars.popLast() print(chars) print(removeNum)/** 输出结果如下[w, e, l, c, o, m, e, a, b, c, d, e]w[e, l, c, o, m, e, a, b, c, d, e]e[e, l, c, o, m, e, a, b, c, d][e, m, e, a, b, c, d][e, m, e, a, b, c]Optional(d)*/ var chars: [Character] [a,b,c,d,e] chars.removeAll() print(chars) print(chars.capacity) var chars2: [Character] [a,b,c,d,e] chars2.removeAll(keepingCapacity: true) print(chars2) print(chars2.capacity)/** 输出结果如下[]0[]5*/ 5.4 移除多个元素(ArraySlice) 5.4.1 通过 Drop 得到 ArraySlice ArraySlice 是数组或者其他ArraySlice 的一段连续切片和原数组共享内存。 当要改变 ArraySlice 的时候ArraySlice 会 copy 出来形成单独内存。 ArraySlice 拥有和 Array 基本完全类似的方法。dropFirst(:) “移除”原数组前面指定个数的元素得到一个 ArraySlice。dropLast(:) “移除”原数组后面指定个数的元素得到一个 ArraySlice。drop(:) “移除”原数组符合指定条件的元素得到一个 ArraySlice。 let array [5,2,10,1,0,100,46,99] print(array) print(array.dropFirst()) print(array.dropFirst(3)) print(array.dropLast()) print(array.dropLast(3)) print(array.drop{ $0 15})/** 输出结果如下[5, 2, 10, 1, 0, 100, 46, 99][2, 10, 1, 0, 100, 46, 99][1, 0, 100, 46, 99][5, 2, 10, 1, 0, 100, 46][5, 2, 10, 1, 0][100, 46, 99]*/ 5.4.2  通过 prefix 得到 ArraySlice prefix() 获取数组前面指定个数的元素组成的 ArraySlice。prefix(upTo: ) 获取数组到指定位置(不包含指定位置)前面的元素组成的 ArraySlice。prefix(through: ) 获取数组到指定位置(包含指定位置)前面的元素组成的 ArraySlice。prefix(while: ) 获取数组前面符合条件的元素(到第一个不符合条件的元素截止)组成的 ArraySlice。 let array [5,2,10,1,0,100,46,99] print(array.prefix(4)) print(array.prefix(upTo: 4)) print(array.prefix(through: 4)) print(array.prefix{ $0 10})/** 输出结果如下[5, 2, 10, 1][5, 2, 10, 1][5, 2, 10, 1, 0][5, 2]*/ 5.4.3  通过 suffix 得到 ArraySlice suffix() 获取数组后面指定个数的元素组成的 ArraySlice。suffix(from: ) 获取数组从指定位置到结尾(包含指定位置)的元素组成的 ArraySlice。 let array [5,2,10,1,0,100,46,99] print(array.suffix(3)) print(array.suffix(from: 5))/** 输出结果如下[100, 46, 99][100, 46, 99]*/ 5.4.4 通过 Range 得到 ArraySlice 可以通过对数组下标指定 Range 获取 ArraySlice可以使用闭区间、半开半闭区间、单侧区 间、甚至可以只使用 ... 来获取整个数组组成的 ArraySlice 。 let array [5,2,10,1,0,100,46,99] print(array[3...5]) print(array[3..5]) print(array[...2]) print(array[..2]) print(array[6...]) print(array[...])/** 输出结果如下[1, 0, 100][1, 0][5, 2, 10][5, 2][46, 99][5, 2, 10, 1, 0, 100, 46, 99]*/ 5.5 ArraySlice 转为 Array ArraySlice 无法直接赋值给一个 Array 的常量或变量需要使用 Array(slice) 。 let array [5,2,10,1,0,100,46,99] let slice array[3...5] var arrayNew Array(slice) 5.6 ArraySlice 和原 Array 相互独立 ArraySlice 和原 Array 是相互独立的它们添加删除元素不会影响对方 6 数组排序 6.1 随机打乱数组顺序 shuffle() 在原数组上将数组元素打乱只能作用在数组变量上。shuffled() 返回原数组的随机化数组可以作用在数组变量和常量上。 var array [Int](0...20) var arrayShu array.shuffled() print(array) print(arrayShu)/** 输出结果如下[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][17, 13, 2, 0, 1, 12, 15, 5, 10, 3, 11, 6, 18, 8, 16, 7, 19, 4, 14, 9, 20]*/ 6.2  数组倒序 reverse() 在原数组上将数组逆序只能作用在数组变量上。reversed() 返回原数组的逆序“集合表示”可以作用在数组变量和常量上该方法不 会分配新内存空间。 var array [Int](0...20) print(array) array.reverse() print(array)/** 输出结果如下[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]*/ 6.3数组的分组 partition(by belongsInSecondPartition: (Element) throws - Bool) 将数组以某个 条件分组数组前半部分都是不符合条件的元素数组后半部分都是符合条件的元素。 var array [Int](0...20) var arrayShu array.shuffled() print(array) let index arrayShu.partition { (element) - Boolinelement 10 } print(arrayShu)let partition1 arrayShu[..index] let partition2 arrayShu[index...] print(partition1) print(partition2)/** 输出结果如下[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][7, 9, 3, 10, 5, 1, 0, 8, 2, 4, 6, 13, 12, 17, 16, 20, 18, 15, 19, 14, 11][7, 9, 3, 10, 5, 1, 0, 8, 2, 4, 6][13, 12, 17, 16, 20, 18, 15, 19, 14, 11]*/ 6.4 数组的顺序排序 sort() 在原数组上将元素排序只能作用于数组变量。 sorted() 返回原数组的排序结果数组可以作用在数组变量和常量上。 var array [Int](0...20) var arrayShu array.shuffled() print(array) print(arrayShu) print(arrayShu.sorted())/** 输出结果如下[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][3, 19, 12, 13, 1, 10, 20, 16, 18, 9, 11, 17, 5, 0, 14, 8, 2, 6, 7, 4, 15][0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]*/ 6.5数组元素交换位置 swapAt(_:_:) 交换指定位置的两个元素。 var array [Int](0...20) print(array) array.swapAt(array.startIndex, array.endIndex - 1) print(array)/** 输出结果如下[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20][20, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0]*/ 7 数组的拼接 7.1 字符串数组拼接 joined() 拼接字符串数组里的所有元素为一个字符串。joined(separator:) 以给定的分隔符拼接字符串数组里的所有元素为一个字符串。 var array [welcome,shenzhen] print(array.joined()) print(array.joined(separator: ,))/** 输出结果如下welcomeshenzhenwelcome,shenzhen*/ 7.2元素为 Sequence 数组的拼接 joined() 拼接数组里的所有元素为一个更大的 Sequence。joined(separator:) 以给定的分隔符拼接数组里的所有元素为一个更大的 Sequence。 let ranges [0...3,8...15,18...26] for range in ranges{print(range) }/**输出结果如下0...38...1518...26*/ let array [[1...3,5...6],[8...9,19...23],[10...15,28...30,35...40]] let joined array.joined(separator: [-1...0]) print(Array(joined))/** 输出结果如下[ClosedRange(1...3), ClosedRange(5...6), ClosedRange(-1...0), ClosedRange(8...9), ClosedRange(19...23), ClosedRange(-1...0), ClosedRange(10...15), ClosedRange(28...30), ClosedRange(35...40)]*/ for i in ranges.joined(){print(i) }/** 输出结果如下012389101112131415181920212223242526*/ 8 总结 暂时还没没写总结。
http://www.ho-use.cn/article/10823819.html

相关文章:

  • 形容网站开发的词分享类网站源码
  • 南开网站建设公司怎么建好网站
  • aspnet网站开发实例wordpress模板是什么
  • wordpress没法做大网站wordpress怎么上传图片
  • 长沙网站空间合肥网站建设求职简历
  • 成都网站建设前50强网页版微信登录显示二维码失效
  • 怎么建立视频网站wordpress企业网站开发
  • 四川微信网站建设推西部数据网站空间
  • 同类色相的网站网站开发项目建设经验
  • 织梦网站模板还原的文件在哪里软件开发公司好的有哪些
  • 做网站策划薪酬韩国最新新闻消息
  • 房地产公司 网站建设七牛云免费服务器
  • 网站关键词分析网络营销方式方法
  • 便利的微网站建设企业建网站设计
  • react做的电商网站能上线吗格尔木市公司网站建设
  • 中国工程建设监理网站wordpress主题合并
  • 微网站的制作过程重庆找工作哪个网站好
  • 京东电子商务网站建设目的贵阳做网站需要多少钱
  • 网站建设先学什么厦门建设银行官方网站
  • 什么时候能用ipv6做网站模具 东莞网站建设
  • 毕业设计 网站建设选题厦门 网站建设 公司
  • 做学徒哪个网站好企业oa网站建设方案
  • 深圳手机网站建设报价微信公众开放平台
  • 沈阳建网站的公司赞助网站怎么做
  • 家具网站建设的前景分析网络品牌推广ppt
  • 网站建设 睿达科滁州做网站
  • 网站开发组合 lamp长春模板网站建站
  • 网站服务器 同步备份广告宣传网站
  • qq官方网站登录城乡与建设厅网站
  • 大理住房和城乡建设部网站软件免费网站大全