For loop Swift 3-区分;“用于循环”;
我试图找出以下两者之间的区别:For loop Swift 3-区分;“用于循环”;,for-loop,swift3,For Loop,Swift3,我试图找出以下两者之间的区别: for i in A { 及 与其他一些语言不同,Swift只有一个for循环。Swift的for循环迭代一个序列,并提供(在循环变量中,i)该序列的每个元素 在第一个示例中,序列是A,数组本身,这意味着i是数组的一个元素: var A = [ "Mal", "Wash", "Kaylee" ] for i in A { print(i) // prints "Mal" on the first pass, then "Wash", then "Kayl
for i in A {
及
与其他一些语言不同,Swift只有一个
for
循环。Swift的for循环迭代一个序列
,并提供(在循环变量中,i
)该序列的每个元素
在第一个示例中,序列是A
,数组本身,这意味着i
是数组的一个元素:
var A = [ "Mal", "Wash", "Kaylee" ]
for i in A {
print(i) // prints "Mal" on the first pass, then "Wash", then "Kaylee"
}
在第二个示例中,序列是整数的范围
,从零开始,到小于数组大小的1结束。所以i
是一个整数:
for i in 0..<A.count {
print(i) // prints "0", then "1", then "2"
}
您的第一个循环示例与第三个示例可以互换吗?这两个代码片段具有相同的效果,是的。通常,这两种形式是否可互换取决于您可能在循环体中尝试执行的其他操作。如果您只是将变量与数组中的元素进行比较,而不考虑索引,那么它们是可互换的?是-
对于数组中的元素{/*read element*/}
和对于0中的索引。。
for i in 0..<A.count {
print(i) // prints "0", then "1", then "2"
}
for i in 0..<A.count {
print(A[i]) // prints "Mal", then "Wash", then "Kaylee"
}
for i in 0..<A.count {
if A[i] == "Wash" {
A.insert("Zoe", at: i + 1)
}
}
for (index, element) in A.enumerated() {
print(index, element) // prints "0 Mal", "1 Wash", "2 Kaylee"
}