美文网首页
iOS知识点-12.用 Swift 实现或(||)操作

iOS知识点-12.用 Swift 实现或(||)操作

作者: 萌小奇 | 来源:发表于2018-12-12 09:56 被阅读16次
Swift Basics
  1. 用 Swift 实现或(||)操作

这题解法很多,下面给出一种最直接的解法:

* func ||(left: Bool, right: Bool) –> Bool {
*   if left {
*     return true
*   } else {
*     return right
*   }
* }

上面这种解法勉强正确,但并不高效。或(||)操作的本质是当左边为真的时候,我们无需计算右边。而上面这种是将右边默认值预先准备好,再传入进行操作。当右边值的计算十分复杂时会造成性能上的浪费。所以,上面这种做法违反了或(||)操作的本质。正确的实现方法如下:

* func ||(left: Bool, right: @autoclosure () -> Bool) –> Bool {
*   if left {
*     return true
*   } else {
*     return right()
*   }
* }

autoclosure 可以将右边值的计算推迟到判定left为false的时候,这样就可以避免第一种方法带来的不必要开销了。

上一题 目录 下一题

相关文章

网友评论

      本文标题:iOS知识点-12.用 Swift 实现或(||)操作

      本文链接:https://www.haomeiwen.com/subject/uaoccqtx.html