Swift Day05 结构体和类

1.结构体基本介绍?
  • 在 Swift 标准库中,绝大多数的公开类型都是结构体,而枚举和类只占用很小的一部分
  • 比如 Bool、Int、Double、String、Array、Dictionary 等常见类型都是结构体
    结构体
  • 所有结构体都有一个编译器自动生成的初始化器(Initializer、初始化方法、构造器、构造方法)
  • 在第⑥行抵用的,可以传入所有成员值,用以初始化所有成员(存储属性,Stored Property
2. 结构体的生成的初始化器最大特点(目的)是什么?
  • 保证所有成员都有初始值
    自动初始化器
3. 下面代码能编译通过吗?
示例
  • 能编译通过,因为可选值都有个默认值 nil
4. 如果结构体中有自定义初始化器,会对自动生成构造器有什么影响?
  • 一旦在定义结构体时自定义了初始化器,编译器就不会再帮它自动生成其他初始化器
不再生成自动构造器
5. 类的基本介绍,对比结构体?
  • 类的定义和结构体类似,但编译器并没有为类自动生成可以传入成员值的初始化器
6. 类的初始器(如果所有成员定义时指定了初始值)?
类的初始化器
7. 结构体和类的本质区别?
  • 结构体值类型枚举也是值类型),引用类型指针类型
    本质区别
8. 什么是 Copy On Write 技术?
  • 在 Swift 标准库中,为了提升性能,String、Array、Dictionary、Set 采取了 Copy On Write 技术
  • 仅当有 操作时,才会真正执行拷贝操作
  • 对于标准库值类型的赋值操作,Swift 能确保最佳性能,所有没有必要为了保证最佳性能来避免赋值
9. 引用类型在赋值或者当成参数传递时有什么特点?
引用类型

你可能感兴趣的:(Swift Day05 结构体和类)