• Swift


    1,Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名、返回值、参数等信息,而没有具体的方法实现。
     

    protocol Person {
        //读写属性
        var name:String{get set}
        //只读属性
        var age:Int{get}
        
        //类型方法
        static func method1()
        
        //实例方法
        func method2() -> Int
        
        //突变方法
        mutating func method3()
        
    }
    

     2,协议可以继承另一个协议

    protocol Animal {
        func move()
    }
    protocol Bird:Animal{
        func song()
    }
    class Chiken: Bird {
    
        func song() {
            print("gege")
        }
        func move() {
            print("run")
        }
    }
    

     3,如果某个类集继承了某个父类,又遵循了某个协议,那么冒号后面应该先写父类,再写协议

    class CC:继承的父类, 协议1, 协议2{
    }
    

    类扩展(extension)

    1,给已有的类添加计算属性和计算静态属性
    2,定义新的实例方法和类方法
    3,提供新的构造器
    4,定义下标脚本
    5,是一个已有的类型符合某个协议

    各个修饰符区别

    1. private 访问级别所修饰的属性或者方法只能在当前类里访问。
    2. fileprivate 访问级别所修饰的属性或者方法在当前的 Swift 源文件里可以访问。
    3. internal(默认访问级别,internal修饰可写可不写)
    4.          internal 访问级别所修饰的属性或方法在源代码所在的整个模块都可以访问。
      • 如果是框架或者库代码,则在整个框架内部都可以访问,框架由外部代码所引用时,则不可以访问。
      • 如果是 App 代码,也是在整个 App 代码,也是在整个 App 内部可以访问。
    5. public可以被任何人访问。但其他 module 中不可以被 override 和继承,而在 module 内可以被 override 和继承。
    6. open可以被任何人使用,包括override和继承
  • 相关阅读:
    nodejs 获取客户端 ip 地址
    如何使用 nvm-windows 管理 nodejs 版本
    redis 环境搭建
    利用 ssh 传输文件
    如何在 Centos7 中安装 gcc
    如何在 Centos7 中安装 nginx
    django迁移model到别的app中
    ssl生成证书
    pip安装mysql报错 ld: library not found for -lssl
    mac重置蓝牙模块
  • 原文地址:https://www.cnblogs.com/baidaye/p/8708813.html
Copyright © 2020-2023  润新知