swift 中的数组

前端之家收集整理的这篇文章主要介绍了swift 中的数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

swift可无缝的将oc中的NSArray和NSMubableArray转换为swift对象直接使用.不过在swift中本身也有个Array.他们之间还有

不少的区别.

1.swift找那个的Array是结构体,而oc中的两个数组是类


2.swift array的声明方式比较灵活

let arr1 :[String] = []

let arr2 = [String]()

let arr3 = Array<String>()

let arr4:[String] = [String]()

let arr5:Array = Array<String>()必须带泛型

以上几种种方式可以声明空的Array,只要把 let 改为 var就可以调用增删改等修改数组内容方法.

NSArray和NSMutableArray,前面的类只能操作一些只读的方法,后者可以修改数组内容,而且构造没有泛型.

也可以使用:

let arr1 = []

let arr2:NSArray = []

let arr3:NSMutableArray = []

let arr4 = NSArray()不能带泛型

特别注意:

在swift中对于NSArray和NSMutableArray申明变量的时候用var,let其实都是可以的,不过编译器推荐都用let

let arr = [],这种方法声明的方式相当于let arr = NSArray()


3.let 的Array和NSArray,前者还是可以这IDE中调用append方法,而后者根本没有这些改变数组的方法;

var的Array的改变方法有append(),insert(),NSMubableArray中对应的是insertObject(),addObject()方法名有点长.


4.let/var arr = [1,2]这种有值的数组就是Array.也可以通过构造方法来进行声明.


5.Array可以用泛型,oc的两个数组类没有泛型.swift的可以更规范.当然swift的也可以什么都放,只要不指定泛型.


6.let aa = Array(count: 10,repeatedValue: 0)可以通过这种方式来确定一个确定容量的数组.在oc中则是用类似的是

NSString *strings[3]; NSString *strings[3] = {@"",@"",@""}; NSArray *stringsArray = [NSArray arrayWithObjects:strings count:2];

猜你在找的Swift相关文章