Swift 几个常用概念的区分
1.fileprivate, private, public, open
1>fileprivate文件内部私有
2>private结构体内或者类内私有
3>public任何作用域访问。但其他module中不可以被override和继承,而在module内可以被override和继承
4>open任何作用域访问,包括override和继承
5>final 任何地方都不能override
2. enum struct class
1>相同点
1>>三者都可以拥有属性和方法(enum本身不能储存属性,但是可以储存在其关联信息中,可以有计算属性)
2>>都可以拥有函数
3>>class和struct可以拥有自己的构造器
4>>可以遵循协议
5>>支持扩展增加功能
2>不同点
1>>类可以继承,内省和转型,结构体不支持
2>>struct、enum为值类型,class为引用类型
引用类型,可以通过赋值,改变原来的数据,值类型是不可以的
3>>类方法用class关键词声明,enum、struct用static关键词
4>>用mutaing关键词声明要修改struct、enum内容的方法
6>>类调用是动态的,结构体是静态绑定,性能方面结构体优于类
7>>苹果官方推荐,尽量使用结构体,除非你使用到继承或者引用的时候,类
3.swift 现在的定义变量使用let a = 3这种方式。oc定义使用const.
区别:let是一个运行时常量,是不可变的。const常量是一个在编译时或者编译解析时被初始化的变量
4.方法有时候会用到static修饰,跟普通的类方法用class修饰区别
static修饰的属性或者修饰的函数都不可以重写。但是使用class修饰符的,你可以重写属性或
者函数。
当static在类中应用的时候,static就成为class final的一个别名