Быстрая тройная стрелка - PullRequest
0 голосов
/ 29 апреля 2018

Я видел исходный код swift 4.0 с символом '>>> -', у меня есть поиск ссылки на этот символ в документах, я не смог его найти, Xcode выдает ошибку Use of unresolved operator '>>>-'

Может кто-нибудь объяснить, что означает этот символ и почему?

спасибо

1 Ответ

0 голосов
/ 29 апреля 2018

Этот оператор не предоставляется Swift. Это пользовательский оператор, определенный автором этой библиотеки.

Вы можете найти определение в другом файле :

precedencegroup constOp {
    associativity: left
    higherThan: AssignmentPrecedence
}

infix operator >>>-: constOp

@discardableResult
func >>>- <T: UIView>(left: (T, T), block: (inout ConstraintInfo) -> Void) -> NSLayoutConstraint {
    var info = ConstraintInfo()
    block(&info)
    info.secondAttribute = info.secondAttribute == .notAnAttribute ? info.attribute : info.secondAttribute

    let constraint = NSLayoutConstraint(item: left.1,
                                        attribute: info.attribute,
                                        relatedBy: info.relation,
                                        toItem: left.0,
                                        attribute: info.secondAttribute,
                                        multiplier: 1,
                                        constant: info.constant)
    constraint.identifier = info.identifier
    left.0.addConstraint(constraint)
    return constraint
}

И поскольку функция func >>>- <T: UIView>(left: (T, T), block: (inout ConstraintInfo) -> Void) -> NSLayoutConstraint не объявлена ​​общедоступной, вы не можете использовать ее за пределами ее декларирующего модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...