遍历数组只获得 Swift Playground 中的第一个值
Posted
技术标签:
【中文标题】遍历数组只获得 Swift Playground 中的第一个值【英文标题】:Iterating through an array only gets the first value in Swift Playground 【发布时间】:2015-04-14 19:29:35 【问题描述】:我知道这是一个非常基本的问题,但它让我很难理解为什么。我有一个名称数组以及如何遍历它们以将它们全部作为单个名称,尽管当我使用 for in
循环这样做时,它只会产生名字,我的代码:
var arrayA = ["Mike", "James", "Stacey", "Steve"]
var str = String()
for array in arrayA
str = array
println(str)//Just prints steve
问题是它只打印 steve,我希望能够单独访问所有名称
这就是我所看到的:
【问题讨论】:
只打印“Steve”?这是在游乐场吗?如果是这样,并且您正在通过 QuickLook 查看输出,则必须单击结果视图中的“所有值”按钮。 【参考方案1】:如果您使用的是 Playground,则可能需要更改视图才能看到所有结果。
您需要将鼠标悬停在快速视图显示上才能找到“所有值”图标。
看起来这可能在 Xcode 7 中发生了变化 - 正如 @MikeMeyers 在 cmets 中提到的那样,您需要右键单击快速查看窗口并选择值历史记录选项。
【讨论】:
如果您将鼠标悬停在快速视图显示上,您是否没有看到右上角出现两个图标? 这似乎可能会随着 Xcode 7 的变化而改变。我没有看到这两个图标,而是(在一些 UI 故障中)我需要右键单击快速查看显示窗口并然后从弹出菜单中选择。【参考方案2】:我无法重现你所说的:
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)
【讨论】:
【参考方案3】:您的代码运行良好 - 它遍历所有数组元素,并将它们全部打印出来。
我注意到了一些冗余 - 它可以更简洁地重写为:
var arrayA = ["Mike", "James", "Stacey", "Steve"]
for element in arrayA
println(element)//Just prints steve
【讨论】:
以上是关于遍历数组只获得 Swift Playground 中的第一个值的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift/Playground 中使用 .append 选项到数组结束时出现错误
Swift Playground 显示错误的语句执行次数(数组上的 forEach)
Swift Playground 中的 CABasicAnimation