swift – 实现|| =和\u0026\u0026 =运算符:不匹配运算
我想要“分配或”和“分配和”操作符.根据
Swift Standard Library Operators Reference,这些运算符在标准库中定义.
我试图为Bool值实现这些运算符: func ||= (inout lhs: Bool,rhs: Bool) { lhs = lhs || rhs } func &&= (inout lhs: Bool,rhs: Bool) { lhs = lhs && rhs } 但编译器抱怨:运算符实现没有匹配运算符声明 这可以通过定义运算符来修复: infix operator ||= { associativity right precedence 90 } infix operator &&= { associativity right precedence 90 } 但我不确定这是正确的做法.为什么标准库中的定义不起作用?另外,我注意到根据操作符参考标准库,没有针对任何类型的这些运算符的实现.这是为什么?这是疏忽还是故意的? 解决方法
有关操作符的文件已经过时,之前在
this answer的评论中已经提到过;我引用用户Airspeed Velocity:
您可以通过Cmd单击Swift来轻松查看实际定义的运算符 import Swift 在例如一个操场. 或者,查看Policy.swift源代码中的标准运算符部分: > 在上述两个中,很明显,&& =和|| =都不是本地定义的. 如果您对这些运算符的实现方式感兴趣(回到Swift 1.1),可能会对以下帖子感兴趣: > Implementing Ruby’s ||= operator in Swift using @autoclosure (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ios – 使用UIManagedDocument的Xcode 4.5的iPhone模拟器5.
- c# – MVVM中Model和ViewModel的澄清和命名约定
- org.xml.sax.SAXParseException元素内容必须由格式正确的字
- 使用 XML 查询替换 ADO.NET 中的 IN ,提高查询性能
- vb.net 教程 1-10 List 之1
- swift – 如何在ReactiveCocoa 3和4中进行基本绑定
- 关于使用sklearn进行数据预处理 —— 归一化/标准化/正则化
- 将场景导出XML或JSON并且解析还原场景
- 我可以在ironruby中运行rubygems吗?
- NAND FLASH学习笔记之MTD下nand flash驱动(二)