我有一个这样的数组:
var array = ["Chinese", "Italian", "Japanese", "French", "American"]
,我想将所有单独的元素打印在新行上,应该怎么做?我的个人首选调试方法是 dump(),它还会打印出元素所在的索引位置。如果你有包含数组的数组,这个方法非常完美。
var array = ["Chinese", "Italian", "Japanese", "French", "American"]
dump(array)
这将生成以下输出
▿ 5 elements
- [0]: Chinese
- [1]: Italian
- [2]: Japanese
- [3]: French
- [4]: American
for element in array {
println(element)
}
更新
适用于 Swift 2 和 Swift 3:
for element in array {
print(element)
}
或者如果您想在同一行上:
for element in array {
print(element, terminator: " ")
}
iOS 9 开始你现在可以直接使用 dump
var someArray = ["one", "two", "three"]
dump(someArray)
这是一个很好的打印数组的方法:
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)
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
println(arrayName.description)
将数组打印为字符串表示形式。该方法是将数组转换为字符串并返回其描述的字符串。