swift_007(Swift的Array 数组)
来源:互联网 发布:程序员对女友很冷淡 编辑:程序博客网 时间:2024/06/04 00:37
1. 在 Swift 中,如果你用let将数组作为常量来定义,他们就是不可变的,如果用var 定义为变量他们就是可变的。
作为对比,Foundation 框架中的 NSArray 默认是不可变类型,如果你想在数组创建之后添加、删除或者修改数据,你必须使用可变类NSMuatbleArray。
2. NSArray 是异质的,那也就意味着他可以包含不同类型的 Cocoa 对象。 Swift 数组是同质的,意味着每一个 Swift 数组都只包含一种类型的对象。
不过,你仍然可以通过将一个类型定义为 AnyObject 类型,使定义的 Swift 数组能够存储可变的 Cocoa 对象类型。
/********************************数组************************************/
//------------------------------------------------------------------------------
// 1. 数组定义
// 初始化一个空数组
var someArray = [String]()
print("数组---\(someArray)")
// 1> 使用[]可以快速定义数组,每一个数组元素使用 ,分隔
// 2> 数组中的数据元素可以是不同类型
var myArray = ["string1","string2",1,1.2,true,1]as [Any]
//------------------------------------------------------------------------------
// 2. 如果要让数组中存放的数据是同一种数据类型,可以在定义数组时指定其中的数据类型,代码如下:
// 1> array1是一个仅允许存放String的数组
var stringArray:[String]
stringArray = ["str1","str2"]
// 2> array2是一个仅允许存放Int的数组
var intArray:[Int]
intArray = [1,2,3,4,5]
for item inintArray {
print("item---\(item)")
}
print("item---\(intArray[0])")
// 3. 使用泛型创建数组
// 使用泛型定义数组时 <>中的类型可以指定数组中存放的数据类型
//
// 1> array3是一个仅允许存放AnyObject(Int等)的数组,()会实例化数组
var idArray = Array<Any>()
idArray = ["stringObject",5,6.6]
print(idArray)
// 2> 在实例化数组时,可以使用数组的构造方法,指定数组初始成员
// 实例化一个数组,包含三个 20的整数
var triArray = Array<Int>(repeating:20,count:3)
var squaerArray = Array<String>(repeating:"方形",count:4)
//------------------------------------------------------------------------------
// 4. 数组常见操作
// 1> 追加元素
triArray.append(21)
// 2> 插入元素
triArray.insert(19, at:0)
triArray.insert(10, at:3)
// 3> 删除指定位置元素
triArray.remove(at:2)
triArray
// 使用变量记录triArray数组,本质上做了一次内存拷贝,后续对数组的修改,不会影响该变量数组中的内容
var copyTriArray = triArray
var aaa = copyTriArray[3]
var bbb = 100
var c = bbb+aaa
// 4> 删除末尾元素
triArray.removeLast()
triArray
copyTriArray
// 5> 删除所有元素,但保留存储空间
//triArray.removeAll(keepCapacity: true)
// 显示resultNums中的内容,数组中的内容并没有受到影响
copyTriArray
triArray
// 6> 数组合并
// 保存相同数据类型的数组,可以使用 +直接合并
var mergeArray = triArray + copyTriArray
// 7>如果我们同时需要每个数据项的值和索引值,可以使用 String的 enumerate()方法来进行数组遍历。实例如下:
var someStrs = [String]()
someStrs.append("Apple")
someStrs.append("Amazon")
someStrs.append("FaceBook")
someStrs += ["Google"]
for (index, item) insomeStrs.enumerated() {
print("在 index =\(index)位置上的值为\(item)")
}
- swift_007(Swift的Array 数组)
- Swift(2)数组 array
- swift-数组(Array)
- 强大的数组---Swift之Array
- swift中array数组的使用
- swift中array数组的使用
- swift 学习计划(一) Array 数组、字典
- swift Array 数组
- swift:数组(Array) 浅析
- swift-数组array
- Swift 数组Array
- swift中的数组Array
- Swift 数组Array
- swift Array 数组 总结
- Swift-Array数组操作
- Swift 数组(Array)
- Swift 中的数组 (Array)
- Swift学习笔记-数组Array
- 2016ICPC沈阳站总结
- *[Lintcode]Palindrome Linked List
- 数据结构实验之二叉树四:还原二叉树
- 2016 最新Android面试题库
- STL-AVL Tree
- swift_007(Swift的Array 数组)
- JavaSE_XML解析__DOM4j_解析原理01
- Mac安装Composer
- This is my first airticle at CSDN blog
- MySQL索引缺点&使用详细注意事项
- Android之Bitmap
- swift_008(Swift的类型转换)
- LinearLayout 动态添加子Button,并自动换行
- Android性能优化之线程池策略和对线程池的了解