我知道这是一个非常基本的问题,但它让我难以理解并找出原因。我有一个名称数组以及迭代它们以将它们全部作为单个名称的内容,尽管当我使用for in
循环时它只生成第一个名称,我的代码:
var arrayA = ["Mike", "James", "Stacey", "Steve"]
var str = String()
for array in arrayA {
str = array
println(str)//Just prints steve
}
问题是它只打印史蒂夫,我希望能够访问所有名称单身
这就是我所看到的:
答案 0 :(得分:7)
如果您正在使用游乐场,则可能需要更改视图才能查看所有结果。
您需要将鼠标悬停在快速查看显示屏上才能找到"所有值"图标。
在 Xcode 7 中可能已经发生了变化 - 正如@MikeMeyers在评论中提到的那样,您需要右键单击快速查看窗口并选择值历史记录选项。
答案 1 :(得分:0)
我无法重现您所说的内容:
rnapier:~$ swift
Welcome to Swift version 1.2. Type :help for assistance.
1> var arrayA = ["Mike", "James", "Stacey", "Steve"]
2. var str = String()
3. for array in arrayA {
4. str = array
5. println(str)//Just prints steve
6. }
Mike
James
Stacey
Steve
arrayA: [String] = 4 values {
[0] = "Mike"
[1] = "James"
[2] = "Stacey"
[3] = "Steve"
}
str: String = "Steve"
这将打印所有值,并将str
分配给最后一个元素。目前还不清楚你为什么要使用str
,但我相信它能满足你的要求。
如果我正在写这个循环,我会建议:
let arrayA = ["Mike", "James", "Stacey", "Steve"]
for elem in arrayA {
println(elem)
}
答案 2 :(得分:0)
您的代码运行得很好 - 它遍历所有数组元素,并将它们全部打印出来。
我注意到了一些冗余 - 它可以更简洁地重写为:
var arrayA = ["Mike", "James", "Stacey", "Steve"]
for element in arrayA {
println(element)//Just prints steve
}