swift - Swift 三箭头符号
问题描述
我在swift 4.0 源代码中看到带有 '>>>-' 符号,我在文档中搜索了这个符号的引用,但我找不到它,Xcode 抛出错误Use of unresolved operator '>>>-'
有人能解释一下这个符号是什么意思吗?为什么?
谢谢
解决方案
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
未声明为 public,因此您不能在其声明模块之外使用它。
推荐阅读
- python - Python:如何导入带有控制字符分隔符的 csv 类 dat 文件
- java - 片段中的 onPostExecute 输出
- gnupg - 无法添加 MikTex gpg 密钥
- three.js - 我想在 AR 渲染对象上运行浏览器。three.js 能做到吗?
- ios - 快速计算行程距离核心位置
- dart - 颤振如何创建文件夹以将文件存储在内部存储中
- rest - 如何发送和检索 REST WCF 服务的自定义标头信息
- javascript - threeJs 错误(太低)相机位置
- java - 不知道如何迭代 <forEach> 中提供的“项目”
- javascript - 如果选中“其他”复选框并获取值,则取消选中所有复选框