“private 让代码只能在当前作用域中被使用,fileprivate 表示代码只能在当前文件中被访问。但是对于一个严格的项目来说,精确的最小化访问控制级别对于代码的维护来说还是相当重要的。我们想让同一 module (或者说是 target) 中的其他代码访问的话,保持默认的 internal 就可以了。如果我们在为其他开发者开发库的话,可能会希望用一些 public 甚至 open,因为在 target 外只能调用到 public 和 open 的代码。public 和 open 的区别在于,只有被 open 标记的内容才能在别的框架中被继承或者重写。因此,如果你只希望框架的用户使用某个类型和方法,而不希望他们继承或者重写的话,应该将其限定为 public 而非 open。”
摘录来自: 王巍 (onevcat). “Swifter - Swift 必备 Tips (第三版)”。 iBooks.