Swift 数组

Swift 数组

Swift 4中的数组用于存储具有相同类型的有序值的列表。Swift 4会进行严格的检查,不允许您在数组中输入错误的类型,即使是错误的类型也不行。

如果将一个创建好的数组分配给一个变量,那么它将始终是可变的,这意味着您可以通过添加、删除或更改其中的项目来修改它;但是如果将数组分配给一个常量,那么该数组是不可变的,它的大小和内容不能被更改。

创建数组

您可以使用以下初始化语法创建一个特定类型的空数组−

var someArray = [SomeType]()

下面是用于创建大小为a*的数组并以一个值初始化的语法:

var someArray = [SomeType](count: NumbeOfElements, repeatedValue: InitialValue)

你可以使用下面的语句创建一个空数组, Int 类型,有3个元素,初始值为零 –

var someInts = [Int](count: 3, repeatedValue: 0)

在下面有一个更多的示例,创建一个包含三个元素的数组,并将三个值分配给该数组-

var someInts:[Int] = [10, 20, 30]

访问数组

可以使用 下标语法 从数组中检索一个值,即在数组名称后面紧跟方括号中要检索值的索引。

var someVar = someArray[index]

在这里, index 从0开始,这意味着第一个元素可以通过索引0访问,第二个元素可以通过索引1访问,依此类推。以下示例显示了如何创建,初始化和访问数组:

var someInts = [Int](count: 3, repeatedValue: 10)

var someVar = someInts[0]
print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

当上述代码被编译和执行时,它将产生以下结果 −

Value of first element is 10
Value of second element is 10
Value of third element is 10

修改数组

你可以使用 append() 方法或加法赋值运算符(+=)将新项添加到数组的末尾。看一下以下示例。在这里,首先我们创建了一个空数组,然后向同一个数组中添加新元素 –

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

当上面的代码被编译和执行时,会产生以下结果−

Value of first element is 20
Value of second element is 30
Value of third element is 40

您可以通过在给定的索引处分配新值来修改数组的现有元素,如下面的示例所示−

var someInts = [Int]()

someInts.append(20)
someInts.append(30)
someInts += [40]

// Modify last element
someInts[2] = 50

var someVar = someInts[0]

print( "Value of first element is \(someVar)" )
print( "Value of second element is \(someInts[1])" )
print( "Value of third element is \(someInts[2])" )

当以上代码被编译和执行时,会产生以下结果 –

Value of first element is 20
Value of second element is 30
Value of third element is 50

迭代数组

你可以使用 for-in 循环来迭代整个数组中的所有值,如下例所示:

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]
for item in someStrs {
   print(item)
}

当上述代码被编译和执行时,它产生以下结果 –

Apple
Amazon
Google

你可以使用 enumerate() 函数,该函数返回一个项的索引以及其值,如下面的示例所示:

var someStrs = [String]()

someStrs.append("Apple")
someStrs.append("Amazon")
someStrs += ["Google"]

for (index, item) in someStrs.enumerated() {
   print("Value at index = \(index) is \(item)")
}

当上述代码被编译和执行时,产生以下结果−

Value at index = 0 is Apple
Value at index = 1 is Amazon
Value at index = 2 is Google

添加两个数组

您可以使用加法运算符(+)将两个相同类型的数组相加,从而得到一个新的数组,该数组包含来自两个数组的值的组合,如下所示−

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB
for item in intsC {
   print(item)
}

当上述代码被编译和执行时,它产生如下结果 –

2
2
1
1
1

count属性

您可以使用数组的只读count属性来查找下面数组中的项目数 –

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)

var intsC = intsA + intsB

print("Total items in intsA = \(intsA.count)")
print("Total items in intsB = \(intsB.count)")
print("Total items in intsC = \(intsC.count)")

当上面的代码被编译和执行时,它会产生以下结果:

Total items in intsA = 2
Total items in intsB = 3
Total items in intsC = 5

空属性

您可以使用数组的只读 empty 属性来判断数组是否为空,如下所示:

var intsA = [Int](count:2, repeatedValue: 2)
var intsB = [Int](count:3, repeatedValue: 1)
var intsC = [Int]()

print("intsA.isEmpty = \(intsA.isEmpty)")
print("intsB.isEmpty = \(intsB.isEmpty)")
print("intsC.isEmpty = \(intsC.isEmpty)")

当上述代码被编译和执行时,产生以下结果 −

intsA.isEmpty = false
intsB.isEmpty = false
intsC.isEmpty = true

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程