小编vgm*_*ose的帖子

For-in循环过于远,在展开时发现'nil'

看起来下面的Swift for-in循环试图通过比数组中更多的元素.

例如,这段代码:

var list:[Int?] = [1,2,3,4,5,6,7]

print("C-Style for loop")
for var i=0; i<list.count; i++ 
{
    var x:Int = list[i]!
    print(x)
}

print("\nFor-in loop")
for var x:Int! in list
{
    print(x)
}
Run Code Online (Sandbox Code Playgroud)

获取此输出:

C-Style for loop
1
2
3
4
5
6
7

For each loop
1
2
3
4
5
6
7
fatal error: unexpectedly found nil while unwrapping an Optional value
... 
Illegal instruction: 4
Run Code Online (Sandbox Code Playgroud)

我必须在这里遗漏一些东西.不应该list.count是for-in循环尝试解包的元素数量?

如上图所示,如果使用[Int]列表而不是不解包,则for-in循环按预期工作[Int?].

我在Swift版本2.1.1上.

for-loop for-in-loop swift

5
推荐指数
1
解决办法
156
查看次数

标签 统计

for-in-loop ×1

for-loop ×1

swift ×1