Swift 3中新的访问控制关键字fileprivate和open
来源:互联网 发布:阿里云服务器 yum 编辑:程序博客网 时间:2024/06/07 08:42
在Swift 3中除去原有的3个访问控制关键字private,public,internal,又添加了2个关键字fileprivate和open
它们可以看成是对private和public的进一步细分
原来的private对于同一个文件的各个方法来说都可以访问到,这往往不是开发者想要的结果,于是原来的private变成了fileprivate,而private变为了真正的私有访问控制.这意味着即使在同一个文件中用private修饰的方法也不可以被代码域之外所访问了:
class Foo{ private func test(){ print("hello private func!!!") } func show(){ test() }}class Sub:Foo{ func show_sub(){ test() //ERROR!!! }}Foo().show()
如果把上述代码中的private换为fileprivate那么一切照旧,错误就会消失.
而对于open来说是补充public语义上的缺陷.以往的public有2层含义:
1.该item可以在其他作用域被访问
2.给item可以在其他作用域被继承或重载override
而后一种含义从某种意义上说是一件危险的行为,你往往不希望某个类或属性被继承或修改,这就是传统意义上的final
但是被final标记后在任何地方都不能被override,对于lib设计者来说希望的结果是在module内可以被override,而在import到外部后不能被override
这就是open产生的原因,现在的public表示在其他module中不可以被override和继承,而open表示原来public的含义.
现在的访问权限由高到低依次为:open,public,interal,fileprivate,private
参考精彩的博文:Swift 3必看:新的访问控制fileprivate和open
0 0
- Swift 3中新的访问控制关键字fileprivate和open
- Swift 3:新的访问控制fileprivate和open
- Swift基础之:新的访问控制fileprivate和open
- Swift 新的访问控制fileprivate和open
- Swift 3必看:新的访问控制fileprivate和open
- Swift 3必看:新的访问控制fileprivate和open
- Swift 3必看:新的访问控制fileprivate和open
- Swift 3必看:新的访问控制fileprivate和open
- Swift 3必看:新的访问控制fileprivate和open
- Swift3.0 -- 新的访问控制fileprivate和open
- swift中访问控制(fileprivate,private,internal,public,open)
- Swift - 访问控制(fileprivate,private,internal,public,open)
- Swift 3 中Private和Fileprivate的区别
- Swift-Private/FilePrivate/Public/Open的作用和区别
- 访问控制(fileprivate,private,internal,public,open)
- Swift_访问控制(open>public>fileprivate>insternal>private)
- swift3 fileprivate和open的使用
- private、fileprivate、public、open修饰符的作用和区别
- 设计模式初识积累
- QWidget垂直布局显示
- Android-ADB命令
- 安卓关于不能完全去除dialog的背景问题的解决方案
- 下载文件到JZ2440开发板上
- Swift 3中新的访问控制关键字fileprivate和open
- 【Lightoj 1032 Fast Bit Calculations 】
- nginx php-fpm 110: Connection timed out) while connecting to upstream 错误
- 【算法】P,NP,NPC问题总结
- eclipse使用总结:快速修复ctrl+1
- 都在做无人仓,京东凭什么树立压倒性优势?
- Oracle面试题及答案整理
- redis设置密码
- VMware Workstation 虚拟网卡