Swift5中fileprivate与private的区别是什么
创始人
2024-12-22 16:22:08
0次

前言

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作用域是当前文件

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...