
对象类型
|
213
let arr = [[1,2,3], [4,5,6], [7,8,9]]
let i = arr[1][1] // 5
如果外层数组引用是可变的,那么你还可以对嵌套数组赋值:
var arr = [[1,2,3], [4,5,6], [7,8,9]]
arr[1][1] = 100
还可以通过其他方式修改内部数组;比如,可以插入新的元素。
6.
基本的数组属性与方法
数组是一个集合(
CollectionType
协议),集合本身又是个序列(
SequenceType
协议)。
你可能对此有所了解:
String
的
characters
就是这样的,我在第
3
章将其称作字符序列。
出于这个原因,数组与字符序列是非常相似的。
作为集合,数组的
count
是个只读属性,返回数组中的元素个数。如果数组的
count
为
0
,
那么其
isEmpty
属性就为
true
。
数组的
first
与
last
只读属性会返回其第一个和最后一个元素,不过这些元素会被包
装到
Optional
中,因为数组可能为空,因此这些属性就会为
nil
。这会出现
Swift
中很
少会遇到的将一个
Optional
包装到另一个
Optional
中的情况。比如,考虑包装
Int
的
Optional
数组,如果获取该数组最后一个属性会发生什么。
数组最大的可访问索引要比其
count
小
1
。你常常会使用对
count
的引用来计算索引值;
比如,要想引用
arr
的最后两个元素,可以这样做:
let arr = [1,2,3]
let arr2 = arr[arr.count-2...arr.count-1] ...