如何在Swift中显示数组的所有元素?

43
我有一个这样的数组:var array = ["Chinese", "Italian", "Japanese", "French", "American"],我想将所有单独的元素打印在新行上,应该怎么做?
5个回答

111

我的个人首选调试方法是 dump(),它还会打印出元素所在的索引位置。如果你有包含数组的数组,这个方法非常完美。

var array = ["Chinese", "Italian", "Japanese", "French", "American"]
dump(array)

这将生成以下输出

 5 elements
  - [0]: Chinese
  - [1]: Italian
  - [2]: Japanese
  - [3]: French
  - [4]: American

21
这应该是被选中的答案。 - ReneGAED
2
在UI测试中,imho dump非常好用,可以轻松查看子按钮列表,例如... - Dave Kliman

43
您可以像这样简单地遍历该数组并将所有元素打印在新行上:
for element in array {
  println(element)
}

更新

适用于 Swift 2 和 Swift 3:

for element in array {
  print(element)
}

或者如果您想在同一行上:

for element in array {
  print(element, terminator: " ")
}

29

更新:

iOS 9 开始你现在可以直接使用 dump

var someArray = ["one", "two", "three"]
dump(someArray)

Translated:

这是一个很好的打印数组的方法:

var someArray = ["one", "two", "three"]

// prints out the elements separated by a line break
// same as calling "println" on each item in the array:
println(someArray.joinWithSeparator("\n"))

// one
// two
// three

否则,如果你想让它们在同一行上,你只需要简单地打印数组:

// prints on the same line:
// ["one", "two", "three"]
println(someArray)

5
如果您不喜欢dump(…)的格式,那么可以从它的签名中看到它有一些默认参数,因此允许进行一些自定义。话虽如此,还有两个更灵活的选择可以考虑——由您决定是否以可读性为代价!首先,如果您喜欢闭包参数符号表示法(例如简写参数名称),并且/或者您想在打印数组之前先操作它,那么可以使用forEach
array.forEach() { print($0) }
Chinese
Italian
Japanese
French
American

array.sorted(by: {$1 > $0}).forEach() { print($0) }
American
Chinese
French
Italian
Japanese

其次,如果你需要一个索引,但dump(…)输出的内容过于冗长,可以尝试使用以下代码:

for (n, nationality) in array.enumerated() { print("\(n) \(nationality)") }
0 Chinese
1 Italian
2 Japanese
3 French
4 America

2
您还可以使用println(arrayName.description)将数组打印为字符串表示形式。该方法是将数组转换为字符串并返回其描述的字符串。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接