Apple的Swift 4.2语言新增功能

在计划于2019年发布Swift 5之前 ,Apple已发布了中间的Swift 4.2版本。

当前版本:Apple的Swift 4.2中的新增功能

Apple的Swift编程语言的4.2版使该语言更接近稳定的应用程序二进制接口(ABI),并为将来的版本提供了二进制兼容性。 ABI稳定性使使用不同语言版本编译的库和应用程序之间具有二进制兼容性。

[构建移动应用程序的方法不止一种。 查看25个用于快速构建移动应用程序的简单工具 | 通过InfoWorld的App Dev Report新闻通讯了解编程中最热门的话题。 ]

尽管Apple的目标是稳定性,但是Swift 4.2与以前的版本不二进制兼容。 但是,提供了源兼容性。 使用Swift 4.0编译器构建的大多数源代码都应同时使用Swift 4.2和Swift 4.1编译器进行编译。

Swift 4.2中的其他新功能包括:

  • 泛型的改进,以完成条件一致性支持为基础,减少了样板代码的数量,并使更多的代码可重用。
  • 标准库功能包括对可哈希协议的改进以及一组统一的随机函数和协议。
  • 批处理模式编译支持,可缩短构建时间。
  • 更改保留/释放周期的调用约定,以减小代码大小并提高性能。
  • 递归元数据支持。
  • 更紧凑的反射元数据。
  • 在呼叫站点内联的偏转参数。
  • 各种错误修复,例如通用初始化程序的继承。
  • 在语法上等同于#if swift版本检查的compiler指令,但无论运行哪种兼容方式,都针对编译器的版本进行检查。
  • 新的Swift软件包管理器功能,包括对批处理模式的支持,现在使用此模式编译目标; 改进的方案生成逻辑; 和自动的Xcode项目生成。

在哪里下载Swift 4.2

您可以通过从Apple 下载Xcode 10.0 IDE下载Swift 4.2

Swift 4.2的其他计划包括:

  • 改进了编译时性能。
  • 字符串现在是16个字节,而不是24个字节。 苹果公司认为这是在内存使用情况和性能之间的良好折衷,同时又足够大以进行小的字符串优化。
  • 提供API可简化随机数生成。
  • 在iOS和MacOS之间共享代码时, has import构建配置指令可以更好地表达意图。

先前版本:Swift 4.1的新增功能

Swift 4.1于2018年3月下旬发布,为该语言添加了更多泛型并进行了构建改进。 4.1版与Swift 4.0源兼容。

在4.1版本中实现的与泛型相关的建议包括条件一致性,表达了这样的观念,即只有当类型实参满足特定要求时,泛型才会符合特定协议。 预计该功能将对Swift标准库产生重大影响。 其他泛型改进包括:

  • 让编译器综合EquatableHashable一致性,以减少样板和复杂性。
  • 使标准库索引类型为Hashable
  • IndexDistance Collection IndexDistance关联类型IndexDistance 并修改使用为具体类型Int

Swift 4.1中还提供了更多配置构建的方法,例如代码大小优化和针对平台和环境支持的更简单机制。

作为稳定Swift计划中计划ABI(应用程序二进制接口)的计划的一部分,对4.1版进行了更改,该计划将于今年晚些时候发布。 这些内幕更改包括在本机对象标题中使用word-size字段来进行引用计数和运行时功能的审核。 此外,通过使用条件一致性,各种收集包装程序正在崩溃。

Swift 4.1增强了Swift Package Manager。 现在,它可以解决使用URL方案(例如sshhttp程序包图中的依赖关系。 另外,具有共享依赖项的程序包图的性能也得到了提高。

4.1升级还具有Swift进化建议,包括删除协议中的属性声明的unowned关键字( weakunowned 。 这样做是为了清楚起见。 同样,跨模块结构初始化程序也受到限制。 这符合对类的现有限制。

在哪里下载Swift 4.1

您可以从Swift下载网页下载Swift 4.1升级 。 此外,Xcode 9.3 IDE附带有Swift 4.1,它具有代码迁移器来处理许多源代码更改。

先前版本:Swift 4.0的新增功能

Swift 4.0是对Apple Swift的重大升级,Swift是用于MacOS和iOS应用程序开发的Objective-C语言的三年继承者。

Swift 4升级增强了Swift Package Manager,并为开发人员提供了新的兼容模式。 苹果公司表示,Swift 4还使Swift更加稳定并改进了其标准库。 Swift 4在很大程度上与Swift 3具有源代码兼容性,并且作为Apple Xcode 9 IDE的一部分提供。

Swift 4的软件包管理器有什么新功能

在Swift 3中首次亮相的Swift Package Manager是用于分发代码的工具。 它与Swift构建系统集成在一起,以自动化包括依赖项的下载,编译和链接在内的流程。 Swift 4软件包管理器的改进包括:

  • 较干净的Package API,允许软件包指定新设置。 这些设置使开发人员可以更好地控制软件包的构建和磁盘上源的组织。
  • 串联开发多个软件包变得更加容易。
  • 软件包产品的形式化,可以控制软件包发布到客户端的库。
  • 现在,在MacOS上构建的软件包位于沙箱中,可防止网络访问和文件系统修改,以减少恶意清单的覆盖范围。

Swift 4中的新兼容模式有助于迁移

Swift 4的新兼容模式可以使您不必修改代码就可以使用新版本的编译器。 支持两种模式,包括Swift 3.2模式和Swift 4.0模式,其中Swift 3.2模式接受使用Swift 3.x编译器生成的大多数源文件,而Swift 4.0模式包括对Swift 4和API的更改。

苹果表示,许多项目都需要进行某些源代码迁移,但是与以前在Swift版本之间进行的许多重大更改相比,源代码更改的数量“相当适中”。 Swift 4中的兼容性模式的引入使开发人员可以更好地控制迁移速度。

Swift 4中的语言改进比比皆是

Swift 4引入了几种语言改进,包括:

  • 一种更快,更易于使用的String实现,它保留Unicode正确性并支持子字符串的开发和使用。
  • 改进了对收集类型的使用和管理。
  • 强制执行对内存的互斥访问,其中变量的潜在修改必须与对该变量的任何其他访问互斥。
  • 能够存档structenum类型。
  • 类型安全序列化到外部格式(例如JSON)。
  • 面向协议的整数,可以清理Integer API,并使它们对通用编程更有用。
  • 支持where子句以约束关联类型。 以前,关联类型只能表示简单的继承约束,而不能使用where子句来表示泛型类型可用的更复杂的约束。
  • 包括swift run命令以构建和运行当前程序包中定义的可执行文件。
  • 在协议扩展中声明功能时删除final关键字支持。
  • 改进了private声明和扩展名之间的交互,扩展了private访问控制,因此,在类型扩展名中定义的成员具有与在类型本身上定义的成员相同的访问权限,只要类型和扩展名在同一源文件中即可。

From: https://www.infoworld.com/article/3226471/whats-new-in-apples-swift-40-language.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值