访问控制

2021-05-28  本文已影响0人  大写的空气
open

同一模块内(target)所有实体都可访问,模块外也可以被访问,并且能在模块外被继承与重写

public

与open对比,模块外无继承与重写功能

internal

同一模块源文件中的任何实体访问,但是不能被模块外的实体访问。默认的访问级别,当然也有例外,如类的访问级别低于internal,则它内部变量或方法的访问级别默认也会低于internal,跟类的访问级别一致.

fileprivate

只能在其定义的文件(如.swift文件)内部访问

private

只能在当前class中使用

当你的应用程序包含单元测试 target 时,为了测试,测试模块需要访问应用程序模块中的代码。默认情况下只有 open 或 public 级别的实体才可以被其他模块访问。然而,如果在导入应用程序模块的语句前使用 @testable 特性,然后在允许测试的编译设置(Build Options -> Enable Testability)下编译这个应用程序模块,单元测试目标就可以访问应用程序模块中所有内部级别的实体。

上一篇 下一篇

猜你喜欢

热点阅读