遍历数组仅获取 Swift Playground 中的第一个值

Iterating through an array only gets the first value in Swift Playground

我知道这是一个非常基本的问题,但它让我感到困惑并找出原因。我有一个名称数组以及要遍历它们以将它们全部作为单个名称的内容,尽管当我这样做时使用 for in 循环它只产生名字,我的代码:

var arrayA = ["Mike", "James", "Stacey", "Steve"]
var str = String()
for array in arrayA {
    str = array 
    println(str)//Just prints steve
}

问题是它只打印 steve,我希望能够访问所有名字 singleley

这是我看到的:

我无法重现你所说的内容:

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)
}

您的代码运行良好 - 它遍历所有数组元素,并将它们全部打印出来。

虽然我注意到有点冗余 - 它可以更简洁地重写为:

var arrayA = ["Mike", "James", "Stacey", "Steve"]
for element in arrayA {
    println(element)//Just prints steve
}

如果您使用的是 playground,您可能需要更改视图才能看到所有结果..

您需要将鼠标悬停在快速视图显示上才能找到 "All Values" 图标。


看起来这可能在 Xcode 7 中发生了变化 - 正如@MikeMeyers 在评论中提到的,您需要右键单击快速视图 window 和 select 价值历史选项。