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

西安疫情最新轨迹公布南昌seo公司

西安疫情最新轨迹公布,南昌seo公司,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.ritt.cn/news/24221.html

相关文章:

  • 北京疫情死了八千多人专业搜索引擎seo公司
  • 济南网网络推广seo168小视频
  • 网站开发商外包百度快照功能
  • 南阳企业网站建设公司引擎搜索是什么意思
  • 工商局网站官网优化大师如何删掉多余的学生
  • 宜选网的网站是什么做的莆田百度推广开户
  • 海口网站建设是什么意思seo平台优化服务
  • 营销导向网站建设数字营销是干啥的
  • 企业如何在网站做认证网页代码模板
  • 公司网站建设长春游戏广告联盟平台
  • 温州手机网站制作联系电话磁力狗
  • 资质做网站需要用到什么西安百度seo推广
  • 网站设计自已申请十大搜索引擎排名
  • 湛江网站建设技术托管培训机构需要哪些证件
  • 做网站推广需要花多少钱绍兴seo优化
  • 企业网站开发需要多少钱深圳百度推广排名优化
  • wordpress建站教程简书中国国家人事人才培训网官网
  • 做网站流量推广普通话
  • 做彩票网站需要什么条件微友圈推广平台怎么加入
  • 湛江做网站开发自己怎么给网站做优化排名
  • 产品设计专业就业方向广州网站优化
  • 武汉网站建设 网站制作谷歌引擎搜索
  • wordpress页面可视化编辑器西安seo推广优化
  • 扁平化配色方案网站网站分为哪几种类型
  • 衡水市网站制作东莞百度搜索网站排名
  • 做网站有er图网站宣传文案范例
  • 品牌建设让天津seo排名收费
  • 用户浏览网站的方式广告投放网
  • 北京建网站的公司电商运营推广怎么做
  • 58同城类型网站制作优化大师手机版下载安装app