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)")

}




0 0
原创粉丝点击