Sobes.tech
Junior — Middle

O'zining navbat tuzilmasini amalga oshirish imkoniyati bormi?

sobes.tech AI

AIdan javob

Ha, iOS-da o'z navbat tuzilmasini amalga oshirish mumkin. Masalan, elementlarni massivda saqlaydigan va FIFO (birinchi kirgan, birinchi chiqadigan) tamoyili bo'yicha elementlarni qo'shish (enqueue) va olib tashlash (dequeue) uchun metodlar taqdim etadigan sinf yaratish mumkin. Bu, agar standart sinflar, masalan, DispatchQueue, maxsus vazifalar uchun mos kelmasa, foydali bo'lishi mumkin.

Swiftda oddiy navbat misoli:

class Queue<T> {
    private var elements: [T] = []

    func enqueue(_ element: T) {
        elements.append(element)
    }

    func dequeue() -> T? {
        guard !elements.isEmpty else { return nil }
        return elements.removeFirst()
    }

    var isEmpty: Bool {
        return elements.isEmpty
    }
}

let queue = Queue<Int>()
queue.enqueue(1)
queue.enqueue(2)
print(queue.dequeue()) // 1
print(queue.dequeue()) // 2