美文网首页
Swift访问修饰符

Swift访问修饰符

作者: CombatReadiness | 来源:发表于2023-11-28 19:48 被阅读0次

Swift的访问修饰符有:open、public、internal、fileprivate、private,此5个修饰符访问权限依次由高至低

open
可以在定义的模块中使用也可以在外部模块中使用,都可重写与继承,项目target相当于是模块,open只能用在类&类成员上
public
可以在定义的模块中使用也可以在外部模块中使用,但是外部模块不能重写与继承
internal
只允许在定义的模块中使用,外部模块不能使用,可隐藏文件的实现
fileprivate
只允许在定义的源文件中使用,即源文件.swift文件中使用,即使是extension中使用fileprivate修饰,未在一个源文件也不能使用
private
只允许在定义的封闭声明中访问,即你所定义的类,值类型的实现中

未指定访问修饰符的默认internal

使用规则

除了public被修饰的实体若是内部的属性或函数未指定修饰符,即内部所有默认修饰为修饰实体的修饰符,public的类型默认拥有internal级别的成员,而不是 public,不能使用低访问级别来定义高访问ji,函数的访问级别不能高于其参数类型和返回值类型,也知枚举中定义中的原始值和关联值使用的访问级别也需要不低于本枚举。
如这样:

private struct Student {
    
}

public struct Person {
    public var student:Student
}

编译器会报错Property cannot be declared public because its type uses a private type

private struct Student {
    var grade: String = ""
    var learningDirection: String = ""
}

struct Person {
    public func study(with student:Student) {
        print(student.grade,student.learningDirection)
    }
    
    public func back() -> Student {
        return Student()
    }
}

编译器会报错Method cannot be declared public because its parameter uses a private type

struct Success {
    var data:Data?
}

struct Fail {
    var code:Int?
    var msg:String?
}

public enum Result {
    case success(Success)
    case fail(Fail)
}

编译器会报错Enum case in a public enum uses an internal type

相关文章

  • Swift 关键字 -- 访问控制符

    访问修饰符:在swift中,访问修饰符有五种,分别是:open、public 、internal、filepriv...

  • Swift-关键字

    Swift关键字汇总如下: 一: 常见使用频繁的关键字: 1,访问修饰符:在swift中,访问修饰符有五种,分别是...

  • Swift 4.0 中的 open,public,interna

    文章摘自孙翠花的CSDN原文地址swift访问修饰符关键字,版权归孙翠花所有在Swift3.0中,访问修饰符有五种...

  • Swift003-访问修饰词 函数 闭包

    Swift003-访问修饰词 函数 闭包 访问限制词 在 Swift 语言中,访问修饰符有五种,分别为 filep...

  • swift的访问控制

    在swift中有五种访问修饰符:open、public、internal、fileprivate、private。...

  • Swift public和private

    Swift提供了3种不同访问级别,对应的访问修饰符为:public、internal和private。这些访问修饰...

  • Swift-----访问控制(private、filepriva

    在swift中,访问修饰符有五种,分别是:private、fileprivate、internal、public、...

  • Swift4.0+ Access Control (open/p

    Swift原本有2种常见的访问控制修饰符:private和public。 在Swift3.0+,添加了filepr...

  • 访问控制

    在Swift语言中,访问修饰符有三种,分别为private,internal和public。同时,Swift对于访...

  • Swift-Private/FilePrivate/Public

    原来 Swift 中有2种常用访问控制关键字(访问控制修饰符),分别为 private 和 public。而在 S...

网友评论

      本文标题:Swift访问修饰符

      本文链接:https://www.haomeiwen.com/subject/uylxgdtx.html