加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift 4.0 正式发布,更快更兼容更好用

发布时间:2020-12-14 05:13:20 所属栏目:百科 来源:网络整理
导读:Swift4现已正式发布!Swift4在Swift3的基础上,提供了更强大的稳健性和稳定性,为Swift3提供源码兼容性,对标准库进行改进,并添加了归档和序列化等功能。 你可以通过观看 WWDC2017:What’sNewinSwift 或 完整发行说明 快速了解Swift4功能概述。 一、语言更

Swift4现已正式发布!Swift4在Swift3的基础上,提供了更强大的稳健性和稳定性,为Swift3提供源码兼容性,对标准库进行改进,并添加了归档和序列化等功能。


你可以通过观看WWDC2017:What’sNewinSwift完整发行说明快速了解Swift4功能概述。


一、语言更新


String


Swift4包含一个更快、更易使用的String实现,保留了Unicode的正确性,并新增了对创建、使用和管理子字符串的支持。


详情:


  • SE-0163StringRevision:CollectionConformance,CInterop,Transcoding

  • SE-0168Multi-LineStringLiterals

  • SE-0178AddunicodeScalarspropertytoCharacter

  • SE-0180StringIndexOverhaul

  • SE-0182StringNewlineEscaping

  • SE-0183Substringperformanceaffordances


集合


Swift4改进了创建、使用和管理集合类型。


详情:


  • SE-0148GenericSubscripts

  • SE-0154ProvideCustomCollectionsforDictionaryKeysandValues

  • SE-0165Dictionary&SetEnhancements

  • SE-0172One-sidedRanges

  • SE-0173AddMutableCollection.swapAt(_:_:)


归档和序列化


Swift4支持结构化和枚举类型的归档,并可以对外部格式(如JSON和plist)进行类型安全的序列化。


详情:


  • SE-0166SwiftArchival&Serialization


其他


  • SE-0104Protocol-orientedintegers

  • SE-0142Permitwhereclausestoconstrainassociatedtypes

  • SE-0156ClassandSubtypeexistentials

  • SE-0160Limiting@objcinference

  • SE-0164Removefinalsupportinprotocolextensions

  • SE-0169ImproveInteractionBetweenprivateDeclarationsandExtensions

  • SE-0170NSNumberbridgingandNumerictypes

  • SE-0171Reducewithinout

  • SE-0176EnforceExclusiveAccesstoMemory

  • SE-0179SwiftrunCommand


二、新兼容模式


Swift4发布后,你可能不需要修改代码就可以使用新版本的编译器。编译器支持两种语言模式:


  • Swift3.2:这种模式下,编译器将接受使用Swift3.x编译器构建的大多数源代码。为了提供这种级别的源兼容性,先前存在的API(作为Apple提供的标准库或API的一部分)的更新将不会出现在此模式中。Swift4中的大部分新语言特性都以这种语言模式提供。

  • Swift4.0:此模式包含所有Swift4.0语言和API更改,部分项目可能需要进行源迁移。


语言模式由-swift-version指定给编译器,由Swift包管理器和Xcode自动处理。


详情:


  • MigratingtoSwift4


三、包管理器升级


Swift4为SwiftPackageManager引入了新的工作流功能和更完整的API:


  • 在Tag你的第一个正式版本之前,可以轻松多包开发,或者在多个软件包的分支上一起工作。

  • 可选择控制发布给用户的包。

  • 新的PackageAPI允许软件包指定一些新的设置,使作者能够更好地控制软件包的构建方式,以及如何在磁盘上组织源码。总的来说,用于创建包的API现在更为清晰,同时保留了与旧包的源兼容性。

  • 在macOS上,Swift软件包的构建现在会在一个防止网络访问和文件系统修改的沙箱中进行,有助于减轻恶意程序的影响。


详情:


  • SE-0146PackageManagerProductDefinitions

  • SE-0149PackageManagerSupportforTopofTreedevelopment

  • SE-0150PackageManagerSupportforbranches

  • SE-0158PackageManagerManifestAPIRedesign

  • SE-0162PackageManagerCustomTargetLayouts

  • SE-0175PackageManagerRevisedDependencyResolution

  • SE-0179SwiftrunCommand

  • SE-0181PackageManagerC/C++LanguageStandardSupport


四、相关地址


文档


  • Swift4.0相关文档已在官网更新,在苹果的iBooks商店也可免费下载。


下载


  • https://swift.org/download/


转自:开源中国


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读