2017-02-27 1 views

Antwort

3

Dies ist ein Operator, der zum Hinzufügen eines Zielziels zur Quelle deklariert wurde.

infix operator --> : AdditionPrecedence 
//precedencegroup ProcessingOperationPrecedence { 
// associativity: left 
//// higherThan: Multiplicative 
//} 
@discardableResult public func --><T:ImageConsumer>(source:ImageSource, destination:T) -> T { 
    source.addTarget(destination) 
    return destination 
} 

Die Funktion in der pipeline.swift-Datei deklariert wird

Die addTarget Funktion ist auch ziemlich selbsterklärend.

public func addTarget(_ target:ImageConsumer, atTargetIndex:UInt? = nil) { 
    if let targetIndex = atTargetIndex { 
     target.setSource(self, atIndex:targetIndex) 
     targets.append(target, indexAtTarget:targetIndex) 
     transmitPreviousImage(to:target, atIndex:targetIndex) 
    } else if let indexAtTarget = target.addSource(self) { 
     targets.append(target, indexAtTarget:indexAtTarget) 
     transmitPreviousImage(to:target, atIndex:indexAtTarget) 
    } else { 
     debugPrint("Warning: tried to add target beyond target's input capacity") 
    } 
} 
3

Die --> ist ein benutzerdefinierter Operator speziell für dieses Projekt verwendet, um Ketten Pipelines von Funktionen zusammen. Es ist in diesem Projekt bei framework/Source/Pipeline.swift mit einem Infix-Operator definiert.