swift3 和 swift4相差大吗
发布网友
发布时间:2022-05-14 21:07
我来回答
共1个回答
热心网友
时间:2023-10-30 07:35
一、语法改进
1、extension 中可以访问 private 的属性
2、类型和协议的组合类型,两种不同类型可以用 & 表示组合
3、Associated Type 可以追加 Where 约束语句
4、新的 Key Paths 语法,比如#keyPath(Kid.nickname) 可以写为 \Kid.nickname
5、下标支持泛型
二、字符串
1、Unicode 字符串在计算长度时性能提高
2、更快的字符处理速度,对英语、法语、德语和西班牙语的处理速度提高了3.5 倍,对中文和日语的处理速度提高了2.5倍
3、去掉了String的characters属性用法,直接调用String对象本身即可
4、语法糖省略号“...”符号用于字符串取单侧边界
5、字符串可以当作Collection集合使用
6、多行字符串可以用三个引号括起(我超喜欢这个)
三、Foundation标准库
1、对象持久化兼容了Codable协议,即可以转换为JSON或者PropertyList(xml)
2、Sequence改进,追加了where子句,避免了不必要的类型判断
3、面向协议的整数,支持定长整数
4、字典和集合增强,可以关键词可以重复、允许有默认值、可以分组、可以翻转
5、NSNumber与普通数字变量可以桥接
6、可变内容集合可以交换两个元素的位置
四、编译改进
1、预编译速度改进
2、编译与程序索引同时进行
3、优化内存
4、删除未调用协议
5、减少隐式@objc自动推断
五、独占内存
六、兼容性:同时集成Swift 3.2和Swift 4.0