Как показать все элементы массива в swift?
У меня есть такой массив: var array = ["Chinese","Italian", "Japanase", "French" , "American"]
И я хочу распечатать все отдельные элементы на новой строке.
Как я могу это сделать?
Ответы
Ответ 1
Вы можете просто выполнить итерацию через массив следующим образом и распечатать все элементы в новой строке:
for element in array {
println(element)
}
UPDATE
Для Swift 2 и Swift 3:
for element in array {
print(element)
}
Или, если вы хотите, чтобы он находился на одной строке:
for element in array {
print(element, terminator: " ")
}
Ответ 2
Мой личный фаворит для целей отладки - это dump(), который также печатает индекс, который имеет элемент. Отлично, если у вас есть массивы в массиве тоже.
var array = ["Chinese", "Italian", "Japanese", "French", "American"]
dump(array)
Это приведет к созданию следующего вывода
▿ 5 elements
- [0]: Chinese
- [1]: Italian
- [2]: Japanese
- [3]: French
- [4]: American
Ответ 3
Обновление:
Начиная с 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)
Ответ 4
NB, если вам не нравится форматирование dump(…)
, то вы можете видеть из его подписи, что у него есть некоторые параметры по умолчанию, таким образом, позволит некоторые настройки.
Сказав это, есть еще две альтернативы для рассмотрения, которые могут обеспечить большую гибкость, - чтобы вы могли решить, следует ли за счет удобочитаемости!
Прежде всего, если вам нравится нотация замыкания, например, сокращенные имена аргументов и/или вы хотите сначала манипулировать массивом перед его печатью, вы можете использовать forEach
:
array.forEach() { print($0) }
Chinese
Italian
Japanase
French
American
array.sorted(by: {$1 > $0}).forEach() { print($0) }
American
Chinese
French
Italian
Japanase
Во-вторых, если вы хотите, чтобы индекс, но dump(…)
был слишком многословным, попробуйте:
for (n, nationality) in array.enumerated() { print("\(n) \(nationality)") }
0 Chinese
1 Italian
2 Japanase
3 French
4 America
Ответ 5
Вы также можете распечатать массив как строковое представление, используя println(arrayName.description)