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-0104Protocol-orientedintegers
SE-0142Permitwhereclausestoconstrainassociatedtypes
SE-0156ClassandSubtypeexistentials
SE-0160Limiting@objcinference
SE-0164Removefinalsupportinprotocolextensions
SE-0169ImproveInteractionBetweenprivateDeclarationsandExtensions
SE-0170NSNumberbridgingandNumerictypes
SE-0171Reducewithinout
SE-0176EnforceExclusiveAccesstoMemory
SE-0179SwiftrunCommand
二、新兼容模式
Swift4发布后,你可能不需要修改代码就可以使用新版本的编译器。编译器支持两种语言模式:
语言模式由-swift-version指定给编译器,由Swift包管理器和Xcode自动处理。
详情:
三、包管理器升级
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
四、相关地址
文档
下载
转自:开源中国
