"在swift中什么时候用结构体,什么时候用类?
1、到底是用类的做法优于用结构体,还是用结构体的做法优于类。函数式编程倾向于值类型,面向对象编程更喜欢类。
2、类和结构体有许多不同的特性
-类支持继承、结构体不支持
-类是引用类型、结构体是值类型
3、在运行时,结构体的在性能方面更优于类,原因是结构体的方法调用是静态绑定,而类的方法调用是动态实现的。这就是尽可能得使用结构体代替类的又一个好的原因。
4、并没有通用的规则决定结构体和类哪一个更好用。一般的建议是使用最小的工具来完成你的目标,但是有一个好的经验是多使用结构体,除非你用了继承和引用语义。
"什么是泛型?泛型用来解决什么问题
1、泛型是用来使类型和算法安全的工作的一种类型。在swift中,函数和数据结构中都可以使用泛型,例如类、结构体和枚举
2、泛型一般是用来解决代码复用的问题。
"对一个optional变量拆包有多少种方法?并在安全方面进行评价。
1、强制拆包 !操作符——不安全
2、隐式拆包变量声明——大多数情况下不安全
3、可选绑定——安全
4、自判断链接(optional chaining)——安全
5、nil coalescing 运算符(空值合并运算符)——安全
6、Swift 2.0 的新特性 guard 语句——安全
7、Swift 2.0 的新特性optional pattern(可选模式)
"下面的功能特性都包含在Swift中吗?
1、泛型类
2、泛型结构体
3、泛型协议
答案: Swift 包含1和2特性。泛型可以在类、结构体、枚举、全局函数或者方法中使用。
3是通过typealias部分实现的。typealias不是一个泛型类型,它只是一个占位符的名字。它通常是作为关联类型被引用,只有协议被一个类型引用的时候它才被定义。
"引用类型和值类型
引用类型如类,引用的是地址,有可能a和b都变
值类型,复制的是值,一个值得改变不会影响另一个
网友评论