在 Swift 中,fileprivate 和 private 都是用于限制访问权限的访问控制修饰符,但它们之间有一些重要的区别:
private:
private 修饰的成员只能在定义它的源文件内部访问,即只能在同一个文件中的其他类型或扩展中使用该成员。
这意味着即使在同一个模块的其他文件中也无法访问被 private 修饰的成员。
fileprivate:
fileprivate 修饰的成员可以在定义它的同一个文件中的任何地方访问,但在其他文件中无法访问。
与 private 不同,fileprivate 可以在同一个模块的其他文件中被访问,只要这些文件在同一个源文件中。
简而言之,private 限制了成员的作用域在同一个源文件内部,而 fileprivate 则将作用域扩展到了同一个文件内部。这使得在设计 Swift 类型时能够更精确地控制成员的可见性和访问权限。












网友评论