swift 中, Array,NSArray,NSMutableArray,[] 这些数组有什么区别
越详细越好
1
2
3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
越详细越好
1
2
3
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
1、NSArray和NSMutableArray是foundation框架里的,不是swift的也不是objctive-C的,swift中可以使用,是框架兼容swift语言的问题,跟框架里其他东西都用swift重写了一遍一样。
2、swift中的Array和[]是一个东西,这个是语言的东西了。
3、NSArray和NSMutableArray的区别就是后者是可变数组,可以添加和删除元素。swift的Array不存在可变不可变的问题,对象类型声明为var就是可变,let就是不可变,和swift中其他类型的变量是一个道理,没有专门搞两个类出来。
4、swift的array需要指定元素的类型,比如var arr = Array<String>();那么arr里面只能添加String对象,而NSArray/NSMutableArray则没有这种限制.这时因为swift是被设计成类型安全的,会进行类型检查。
5.var arr = Array<String>()这个尖括号的使用时模板。可以用来写模板函数,类似:
然后使用:
在编译期,obj1和obj2就已经是类型已知的了。
首先NSArray和NSMutableArray是Objective-C的数组类型,NSArray和NSMutableArray区别在于,NSArray是用来创建一个固定数组也就是说一旦创建就不能对进行增加,删除或者修改元素,而NSMutableArray是可变数组,用它去创建的数组对象是允许修改数组内的元素的。
Array是Swift的数组,至于[]则是可以用来创建一个Swift空数组的一种方式(不过这种用法前提是需要已知数组类型的情况下才能使用),例如:
另外Swift的数组和OC的数组是有区别的:
最本质的区别应该[]是值类型,而NSMutableArray是引用类型吧。