DevPrep

Все темы › Объектно-ориентированное программирование (ООП)

Сollection Framework и структуры данных в ООП

Junior

Суть

Коллекции — абстракции для хранения групп значений: массив, множество, словарь. В ООП-языках вроде Java это иерархия классов (Collection Framework). В Swift коллекции устроены иначе, и это главное, что ждёт интервьюер.

Коллекции в Swift

var a = [1, 2, 3]
var b = a            // no copy yet: both share one buffer (copy-on-write)
b.append(4)          // the buffer is copied here, `a` is untouched
print(a, b)          // [1, 2, 3] [1, 2, 3, 4]

// Any type can join the collection family by adopting the protocols.
struct Countdown: Sequence, IteratorProtocol {
    var count: Int
    mutating func next() -> Int? {
        guard count > 0 else { return nil }
        defer { count -= 1 }
        return count
    }
}
print(Array(Countdown(count: 3)))                   // [3, 2, 1]
print(Countdown(count: 5).filter { $0.isMultiple(of: 2) }) // [4, 2]

Сложность операций

На что смотрит интервьюер

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store