Git Hub
коротко

Нашёл клёвую конструкцию

14 апреля 2017, 12:29
typealias Animation = (TimeInterval, ()->Void)
let animation: Animation = (5.0, {
    
})
internal class Node<T> {
    var data: T
    var next: Node<T>?
    
    init(data: T){
        self.data = data
    }
}

internal struct Queue<T> {
    var first, last: Node<T>?
    
    mutating func dequeue() -> T? {
        let pop = first?.data
        first = first?.next
        
        if first == nil {
            last = nil
        }
        
        return pop
    }
    
    mutating func enqueue(data: T){
        if last == nil {
            first = Node(data: data)
            last = first
        } else {
            last?.next = Node( data: data)
            last = last?.next
        }
    }
}
var animations: Queue = Queue<Animation>()
Поделиться
Популярное