Junior — Middle
Jaká datová struktura je vhodná pro modelování událostí stisknutí tlačítek nebo kláves?
sobes.tech AI
Odpověď od AI
Pro modelování událostí stisknutí tlačítek nebo kláves se často používá fronta (Queue). Je vhodná, protože události přicházejí v pořadí jejich vzniku a musí být zpracovávány sekvenčně. Fronta zajišťuje pořadí FIFO (first-in, first-out), což odpovídá logice zpracování uživatelských událostí.
Příklad v Swift s použitím pole jako fronty:
var eventQueue: [UIEvent] = []
// Přidání události do fronty
func enqueue(event: UIEvent) {
eventQueue.append(event)
}
// Zpracování události z fronty
func dequeue() -> UIEvent? {
guard !eventQueue.isEmpty else { return nil }
return eventQueue.removeFirst()
}
V iOS se také často používají delegáti a obslužné rutiny událostí, ale pro interní ukládání a sekvenční zpracování je fronta optimální volbou.