Sobes.tech
Junior — Middle

Коя структура от данни е подходяща за моделиране на събития при натискане на бутони или клавиши?

sobes.tech AI

Отговор от AI

За моделиране на събития като натискане на бутони или клавиши често се използва опашка (Queue). Тя е подходяща, защото събитията идват в реда на тяхното възникване и трябва да се обработват последователно. Опашката осигурява ред FIFO (first-in, first-out), което съответства на логиката на обработка на потребителските събития.

Пример на Swift с използване на масив като опашка:

var eventQueue: [UIEvent] = []

// Добавяне на събитие към опашката
func enqueue(event: UIEvent) {
    eventQueue.append(event)
}

// Обработка на събитие от опашката
func dequeue() -> UIEvent? {
    guard !eventQueue.isEmpty else { return nil }
    return eventQueue.removeFirst()
}

В iOS също често се използват делегати и обработчици на събития, но за вътрешно съхранение и последователна обработка, опашката е оптималният избор.