Swift运算符和nil
发布时间:2020-12-14 05:37:29 所属栏目:百科 来源:网络整理
导读:参见英文答案 Swift nil has a numeric value?1 这个行为的解释是什么? let x: Int? = nilif x 10 { print("x 10")} 它打
参见英文答案 >
Swift nil has a numeric value?1
这个行为的解释是什么? let x: Int? = nil if x < 10 { print("x < 10") } 它打印“x <10”.这不应该产生运行时错误或至少编译器警告? 编辑: 我向苹果提交了一个错误报告,他们认为这是另一个报告的已经存在的副本.所以这将由Apple以某种方式处理/修复.
两件事情发生在这里(无论我们喜欢还是不喜欢):首先,有一个
操作者 public func <<T : Comparable>(lhs: T?,rhs: T?) -> Bool 如果底层类型是可比较的,则比较两个可选项. 其次,枚举可选具有构造函数 /// Construct a non-`nil` instance that stores `some`. public init(_ some: Wrapped) 现在在 if x < 10 { ... } lhs的类型为< Int>.唯一的候选人 if x < Optional<Int>.Some(10) { ... } 更新: 此功能已在Swift 3(SE-0121 – Remove Optional Comparison Operators)中删除,该代码不再与Xcode 8一起编译(目前为6). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |