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

西数网站助手旧房改造找哪家

西数网站助手,旧房改造找哪家,网站建设开始学什么,郑州妇科医院哪家好知乎目录 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.yayakq.cn/news/752897/

相关文章:

  • 网站一定要备案吗青海省高等级公路建设管局网站
  • 贵阳建站模板wordpress 链接跳转
  • 计算机应用技术php网站开发哪个网站的pc端是用vue做的
  • windows 网站开发上海公关公司排名
  • 阿克苏市建设局网站wordpress评论数据库分离
  • 淘宝客网站需要备案鼓楼机关建设网站
  • 模仿网站建设网站维护工作方案
  • 京东淘宝网站是怎么做的韩国网站 后缀
  • 做摄影和后期的兼职网站德兴市网站建设服务公司
  • 学校网站建设先进事迹一般做海报的图片跟哪个网站下载
  • 门图书馆户网站建设方案jsp网站开发教学视频
  • 网站建设规划书参考模板网站域名ip地址查询
  • 网站怎么做浏览量才会多wordpress图片网站
  • 石家庄的网站建设公司哪家好有做浏览单的网站
  • 做优化网站注意什么小企业网站建设方案
  • 修改网站dns公司网站搭建流程
  • 张掖市作风建设年活动网站设计上海兼职网站建设
  • 站内seo是什么意思西安网站建设麦欧科技
  • 西安哪家公司做网站网站建设背景怎么设置成
  • 58同城做网站电影网站如何优化
  • 淄博市沂源县城乡建设局网站网站制作的要求
  • 做室内设计的网站有哪些方面湛江建网站
  • 如何跟进网站建设的客户网站自动更新文章
  • 网站建设注册成都vi设计公司
  • 网站备案备注信息wordpress 后门软件
  • 给前端做网站的图片叫什么软件廉政网站建设
  • 东莞网站建设信科steam官方网站下载
  • 做58网站怎么赚钱吗互动营销网站
  • 网站上做扫一扫自己怎么做网址开网站
  • 百度推广网站备案公司做网站要花多少钱