美文网首页
Swift关键字

Swift关键字

作者: iOS白水 | 来源:发表于2020-05-06 15:37 被阅读0次

    1.@escaping
    标明这个闭包是会“逃逸”,通俗点说就是这个闭包在函数执行完成之后才被调用

    func doWork(block:()->()) {
    print("header")
    block()
    print("footer")
    }
    doWork {
    print("work")
    }
    想对上面 异步逃逸
    func doWorkAsync(block: @escaping () -> ()) {
    DispatchQueue.main.async {
    block()
    }
    }

    2.open与public区别
    2.1修饰class
    public修饰的class只允许外部模块调用,但是不允许继承。 而open修饰的class既允许其他模块调用,也允许被子类继承

    2.2修饰class成员。
    public修饰的成员只允许其他模块调用,但不能被覆盖(override)。而open修饰的成员既允许被其他模块调用,也允许成员被覆盖

    1. defer 类似finally
      func foo() {
      defer {
      print("finally")
      }
      do {
      throw NSError()
      print("impossible")
      } catch {
      print("handle error")
      }
      }

    相关文章

      网友评论

          本文标题:Swift关键字

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