美文网首页Swift3.0学习
Swift--------private 和 public

Swift--------private 和 public

作者: 我想走走 | 来源:发表于2017-01-06 17:34 被阅读40次

参考:http://www.jianshu.com/p/604305a61e57
fileprivate
在原有的swift中的 private其实并不是真正的私有,如果一个变量定义为private,在同一个文件中的其他类依然是可以访问到的。

新增加了一个 fileprivate来显式的表明,这个元素的访问权限为文件内私有。过去的private对应现在的fileprivate。现在的private则是真正的私有,离开了这个类或者结构体的作用域外面就无法访问。

open
open则是弥补public语义上的不足。
现在的pubic有两层含义:

这个元素可以在其他作用域被访问
这个元素可以在其他作用域被继承或者override
继承是一件危险的事情。尤其对于一个framework或者module的设计者而言。在自身的module内,类或者属性对于作者而言是清晰的,能否被继承或者override都是可控的。但是对于使用它的人,作者有时会希望传达出这个类或者属性不应该被继承或者修改。这个对应的就是 final。

final的问题在于在标记之后,在任何地方都不能override。而对于lib的设计者而言,希望得到的是在module内可以被override,在被import到其他地方后其他用户使用的时候不能被override。

这就是 open产生的初衷。通过open和public标记区别一个元素在其他module中是只能被访问还是可以被override。

现在的访问权限则依次为:open,public,internal,fileprivate,private。

相关文章

  • Swift--------private 和 public

    参考:http://www.jianshu.com/p/604305a61e57fileprivate在原有的sw...

  • Swift public和private

    Swift提供了3种不同访问级别,对应的访问修饰符为:public、internal和private。这些访问修饰...

  • public

    请求是梦的祈祷,响应是现实的问候,即便是预先设定好格式,加密的协议还是让一切瞬间从白云沦为泡影。没想到的是地址在这...

  • Public

    转载https://www.cnblogs.com/masahiro/p/10304275.htmlhttp://...

  • public

    public

  • java学习

    floor,round 和 ceil 实例: public class Main { public static...

  • private、protected、public和interna

    private是完全私有的,只有在类自己里面可以调用,在类的外部和子类都不能调用,子类也不能继承父类的privat...

  • 【JAVA】private、protected和public

    private:类内部 无修饰符:类内部和同一个包 protected:类内部、同一个包、子类 public:任何...

  • Swift private 和 public filepriva

    对于访问控制关键字找了好多文章都不理解的很透彻,更好的理解和学习方式应该是自己写一遍代码测试一下 经过各种翻找 终...

  • Django 公共目录设置

    Django设置public和media公用目录 目录结构image.png 'public' 和 'media...

网友评论

    本文标题:Swift--------private 和 public

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