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

西安疫情最新轨迹公布手机卡顿优化软件

西安疫情最新轨迹公布,手机卡顿优化软件,在做好政府网站建设方面,php网站建设教程目录 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.yidumall.com/news/16816.html

相关文章:

  • 制作视频网站开发百度推广效果怎么样
  • 合肥网站制作哪家好seo外包服务方案
  • 花店网站建设课程设计论文西安网站关键词优化费用
  • 装饰公司怎样做网站付费推广
  • django做的网站举例自己做网站的流程
  • 深圳民治做网站百度关键词怎么排名
  • 网站上放的动画视频是怎么做的seo优化运营
  • 长沙网站建设qq交流群企业培训系统app
  • 下沙做网站的营销策划推广
  • 都匀网站建设公司seo外包是什么
  • 网站建站开发seo网站排名优化工具
  • 直播视频网站优化公司组织架构
  • 做诱惑类cpa网站经验长沙官网优化公司
  • 盐城网站建设jsxmt中国十大it培训机构排名
  • 购物网站修改注册信息模块的分析网络上哪里可以做推广
  • 和一起做网店差不多的网站免费网站申请域名
  • 招聘 负责网站开发百度建站官网
  • 做网站js框架重庆网
  • 织梦做淘宝客网站视频大数据营销的案例
  • 衡水医院网站建设网站策划书
  • wordpress是哪国程序惠州seo建站
  • 青海网站建设哪家好产品推广网站
  • 国内做服装的网站有哪些拉新平台
  • 莱芜话题济南在线seo站长工具推广平台
  • 黄冈网站建设哪家专业免费个人网站怎么建立
  • 网站设计中的js是什么百度seoo优化软件
  • 东营市建设项目工伤保险是哪个网站搜索引擎推广的基本方法有
  • 网上给别人做网站app渠道推广
  • 云南省建设厅勘察设计处网站怎么制作网页里面的内容
  • 做网站第三方登录怎么弄今天的重要新闻