zoukankan      html  css  js  c++  java
  • 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和继承
  • 相关阅读:
    学习篇之函数就是对象
    @Controller和@RestController的区别
    maven 阿里云 国内镜像 中央仓库
    IntelliJ IDEA使用教程
    解决“无法从套接字读取更多数据”
    at java.util.Arrays.copyOfRange(Arrays.java:3209)导致的java.lang.OutOfMemoryError: Java heap space 错误的解决办法
    maven中引入ojdbc包
    Oralce增加表空间
    Web服务框架发展与REST服务开发
    Oralce解锁表
  • 原文地址:https://www.cnblogs.com/baidaye/p/8708813.html
Copyright © 2011-2022 走看看