前⾔
Fileprivate和private是Swift中访问控制修饰符的⼀部分。这些关键字与internal,public和open⼀起,使得可以访问其他源⽂件和模块中的代码。
private访问级别是最低和最严格的级别,⽽open访问是最⾼和最少的。 Swift的⽂档将详细解释所有访问级别,但在这篇⽂章中,我将解释两个亲密朋友之间的差异:fileprivate和private。
open访问是最⾼(性最⼩)的访问级别,private访问是最低(性最强)的访问级别。这将提⾼可读性,并使其他⼈更容易使⽤和理解您的代码。什么时候使⽤fileprivate
尽管关键字⼏乎相同,但其⽤例存在明显差异。 Fileprivate访问在同⼀定义的源⽂件中使⽤实体。使⽤fileprivate的唯⼀原因是,您想要在当前⽂件中不同的类或结构中,访问当前⽂件中的代码。这些类,结构都在⼀个⽂件中。
在下⾯的⽰例中,我们有⼀个ImageProvider和⼀个ImageViewController。我们可以使⽤fileprivate,如果它们在同⼀个⽂件中定义,并且我们希望允许在ImageProvider中访问imageView。
但是,如果我们要为ImageProvider结构创建⼀个单独的⽂件,我们会得到⼀个编译器错误:
由于fileprivate导致imageView⽆法访问
在我看来,它的使⽤场景不⼤。好的项⽬结构中,通常把实体定义在对应的⽂件中。什么时候使⽤private
private关键字⽤得更多,并实体对封闭声明及其扩展的使⽤。但是,扩展必须在同⼀⽂件中定义。换句话说,私有声明在⽂件外部不可见。您可以使⽤此关键字仅显⽰与实体交互所需的最少代码。这将提⾼可读性,并使其他⼈更容易使⽤和理解您的代码。
Fileprivate vs private
最好通过image provider⽰例来解释差异。这两个访问权限关键词在同⼀⽂件中声明,它们将导致以下编译器错误:private不能在class以外访问,fileprivate作⽤域是当前⽂件总结
如您所见,fileprivate声明的图像视图可在同⼀⽂件中访问。但是,私有图像视图不可访问,因为它仅在实体本⾝中可见。另外 ImageViewController的扩展可以访问这个私有声明的图像视图。
好了,以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- kqyc.cn 版权所有 赣ICP备2024042808号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务