Вы можете использовать Array
, Set
или кортеж для хранения нескольких значений в одной переменной. Если порядок имеет значение, перейдите с Array
или кортежем, но если заказ не имеет значения, вы можете использовать Set
. Array
и Set
позволяют изменять количество значений, хранящихся в вашей переменной, в то время как переменная кортежа должна всегда иметь одинаковую длину. Кроме того, вы можете перебрать элементы в массиве или установить, но не над кортежем.
Array
является наиболее часто используемым из трех, поэтому, если вы не уверены, что использовать, это хороший первый выбор.
В целом, эта таблица показывает возможности и их свойства:
Loopable Unloopable
Ordered Array Tuple
Unordered Set (none)
Наконец, все элементы в массиве или наборе должны быть того же типа (или получены из того же самого типа, если массив или набор определяется базовым классом). Это называется однородным. Кортеж может содержать разные типы, также называемые гетерогенными.
Homogeneous Heterogeneous
Ordered Array Tuple
Unordered Set (none)
Collection Types в Swift документации описывается, как использовать Array
и Set
.
Массив
Создать массив с
var birdgroup: [UInt32] = [2, 3]
birdgroup[0]
равно 2, и birdgroup[1]
равно 3. Вы также можете получить доступ к детали зацикливание:
for bird in birdgroup {
println("\(bird)")
}
Set
Вы можете объявить набор с
var birdgroup: Set<UInt32> = [2, 3]
Потому что наборы не имеют порядка (представьте, что каждый предмет взят вместе в сумке), вы не можете запросить «первый» или «второй» предмет. Вместо этого, цикл по каждому элементу множества:
for bird in birdgroup {
println("\(bird)")
}
Кортеж
let birdgroup: (UInt32, UInt32) = (2, 3)
Кортежи также сохраняют порядок их элементов. birdgroup.0
равно 2, и birdgroup.1
до 3. Вы можете также указать каждый элемент кортежа имя, если вы предпочитаете, чтобы на номер:
let birdgroup: (UInt32, UInt32) = (foo: 2, bar: 3)
birdgroup.foo
является 2, и birdgroup.bar
является 3.
Кроме того, значения в кортеже не все должны быть одного типа. Вы можете комбинировать различные типы, такие как
let heterogeneousTuple: (UInt32, String) = (2, "three")
Dang! Спасибо, это отлично! – Hunter