Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

swift中array数组的使用

$
0
0

数组使用有序列表存储同一类型的多个值,且相同的值可以多次出现在一个数组的不同位置中。

数组会强制检测元素的类型,如果类型不同则会报错Swift数组应该遵循像Array<Element>这样的形式,其中Element是这个数组中唯一允许存在的数据类型。

如果创建一个数组,并赋值给一个变量,则创建的集合就是可以修改的。这意味着在创建数组后,可以通过添加、删除、修改的方式改变数组里的项目。如果将一个数组赋值给常量,数组就不可更改,并且数组的大小和内容都不可以修改。

使用注意事项: 数组初始化时定义了的元素类型后,在后续使用中,元素类型必须是统一的。但如果定义了类型为"Any",或"AnyObject"时,则数组中可以使用任意类型的元素,同时"Any"类型时,还可以包含方法selector类。

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 空数组  
  2. let arrayTmp01 = Array<String>()  
  3. print(arrayTmp01)  
  4.           
  5. let arrayTmp02 = [String]()  
  6. print(arrayTmp02)  
  7.           
  8. let arrayTmp03:Array<String> = []  
  9. print(arrayTmp03)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 数组清空  
  2. var arrayTmp04 = ["1""2"]  
  3. print(arrayTmp04)  
  4.           
  5. arrayTmp04 = []  
  6. print(arrayTmp04)  
  7.           
  8. arrayTmp04 = ["1""2"]  
  9. print(arrayTmp04)  
  10.           
  11. arrayTmp04 = Array<String>()  
  12. print(arrayTmp04)  

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 创建数组  
  2. let array01:[Int] = [1,2,3,4,5]  
  3. print(array01)  
  4.           
  5. let array02 = ["1""2""3"]  
  6. print(array02)  
  7.           
  8. let array03 = [array01, array02]  
  9. print(array03)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 读取数组元素值  
  2. let value01 = array01[0]  
  3. print(value01)  
  4.           
  5. let value02 = array01.indexOf(1)  
  6. print(value02)  
  7.           
  8. for value in array01  
  9. {  
  10.  print("value = \(value)")  
  11. }  
  12.           
  13. for var index = 0; index < array01.count; index++  
  14. {  
  15.  let value = array01[index]  
  16.  print("index = \(index), value = \(value)")  
  17. }  
  18.           
  19. for i in 0..<array01.count  
  20. {  
  21.  print(array01[i])  
  22. }  
  23.           
  24. for (index, item) in array01.enumerate()  
  25. {  
  26.  print("在 index = \(index) 位置上的值为 \(item)")  
  27. }  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 修改数组  
  2. var array04 = [10,20,30]  
  3. // 添加元素(添加到最后)  
  4. array04.append(100// 单个元素  
  5. print(array04)  
  6. array04 = array04 + [200// 元素数组  
  7. print(array04)  
  8. array04.appendContentsOf([201,202]) // 元素集合  
  9. print(array04)  
  10. array04.appendContentsOf(203...210// 元素序列  
  11. print(array04)  

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 添加元素(添加到指定位置)</span>  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. array04.insert(500, atIndex2)  
  2. print(array04)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 修改元素  
  2. array04[4] = 300  
  3. print(array04)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 删除元素  
  2. array04.removeFirst()  
  3. print(array04)  
  4.           
  5. array04.removeLast()  
  6. print(array04)  
  7.           
  8. array04.removeAtIndex(0)  
  9. print(array04)  
  10.           
  11. array04.removeAll()  
  12. print(array04)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 合并数组(注意:数组类型必须一致)  
  2. array04 = array01 + [100,200,300]  
  3. print(array04)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 类型判断  
  2. var isArray:Bool = array01 is Array  
  3. if isArray  
  4. {  
  5.  print("array01 is array class")  
  6. }  
  7. else  
  8. {  
  9.  print("array01 is not array class")  
  10. }  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 数组元素个数  
  2. let count01 = array04.count  
  3. print(count01)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 判断数组是否为空  
  2. let isValid = array04.isEmpty  
  3. print(isValid)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 第一个元素  
  2. let item01 = array04.first  
  3. print(item01)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 最后一个元素  
  2. let item02 = array04.last  
  3. print(item02)  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 是否包含某个元素  
  2. let contant1:Bool = array01.contains(1)  
  3. print("array01 \(contant1) 包含 1")  
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 数组排序   
  2. let arraySort = array04.sort({(n1:Int, n2:Int)->Bool in  
  3.  // 从小到大  
  4.  // return n2 > n1  
  5.               
  6.  // 从大到小  
  7.  return n2 < n1  
  8. })  
  9. print(arraySort)  
  10.           
  11. let arraySort02 = array04.sort({  
  12.  // 从小到大  
  13.  // return $1 > $0  
  14.               
  15.  // 从大到小  
  16.  return $1 < $0  
  17. })  
  18. print(arraySort02)  
  19.           
  20. let arraySort03 = array04.sort(){  
  21.  // 从小到大  
  22.  // $1 > $0  
  23.               
  24.  // 从大到小  
  25.  $1 < $0  
  26. }  
  27. print(arraySort03)  


补充:Any类型元素,或AnyObject类型元素的数组

[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. // 方法selector  
  2. func buttonClick() -> Void  
  3. {  
  4.             print("点击")  
  5. }  
  6. print(buttonClick)  
  7.           
  8. // AnyObject任意类型元素的数组(不包含方法selector)  
  9. let arrayAnyObject01:Array<AnyObject> = [Grade0ne(chinese: "86", maths"66"), GradeTwo(chinese: "78", english"92"), "DevZhang", 30]  
  10. print(arrayAnyObject01)  
  11.   
  12. // Any任意类型元素的数组(包含方法selector)  
  13. let arrayAnyObject02:Array<Any> = [Grade0ne(chinese: "86", maths"66"), GradeTwo(chinese: "78", english"92"), "DevZhang"30, buttonClick()]  
  14. print(arrayAnyObject02)  
作者:st646889325 发表于2016/10/17 11:24:20 原文链接
阅读:42 评论:0 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles