我在Swift中开发应用程序为生。我喜欢这种语言,并且会尽可能地遵循它。但是,无论是事实还是事实,无论是我蒙蔽了我的眼光,还是苹果公司对此保持沉默,都是如此。
今天,我发现Swift 3.3和3.4存在。我当时假设3.2是3的最新版本,可用于迁移到4、4.2和5。这种误解主要是由于Swif.org,the official Git repo和{{ 3}}根本没有提到他们。
因此,我认为它们也是过渡性的,但是我不知道它们出现在什么IDE或编译器中,或者附带什么警告。下表总结了我的知识:
紫色行中的内容是什么?专门针对3.3和3.4行,但是如果您知道其他行,那也将有所帮助!
权威资料也将很棒。
主要问题的可能答案如下:
我不认为还有另一种可能性。不过请让我知道我是否不在基地。
答案 0 :(得分:5)
这不是填充图中所有未知空间的完整答案,但是也许我可以填写一些有用的东西,不管...
Swift 4开发正在进行时(首次在WWDC17上正式宣布),编译器的版本号与该语言的版本无关。 (就像ANSI C标准与clang和GCC编译器具有不同的版本控制。)
语言版本号跟踪源兼容性-语言定义本身,标准库以及Apple平台SDK在Swift中的显示方式。如果您具有“ Swift 3”代码,则应该能够使用Swift编译器的版本3或使用-swift-version 3
选项的任何更高版本的编译器进行编译。
但是“ Swift 3”(语言版本)也不是固定不变的。随着Swift的不断发展,对语言,标准库和SDK的更改纯粹是可用于Swift 3的。因此,如果您拥有Swift 3代码库并开始使用较新的编译器,则可以选择是否转换所有内容。到Swift 4,开始使用新的编译器功能,或保持与旧版Swift 3编译器的兼容性。
这意味着存在编译器版本到可能的语言兼容版本的映射:
尚无Swift 5(语言或编译器)版本,但是一旦发生这种情况,它很可能允许以-swift-version 4
模式进行构建,从而创建“ Swift 4.3”语言版本。 (假设以后的Swift 4.x版本不会首先考虑这些数字。)
我不知道此答案的单一来源,但是您可以将其汇总为:
对图表中过去的部分内容进行了一些小的更正:
Xcode 8包含两个单独的编译器版本,而不是一个带有-swift-version
开关的编译器。 Xcode 8.3 stopped including the Swift 2.3 compiler,使Swift 3.1成为该版本中唯一受支持的Swift语言。
Xcode 7 / Swift 2从不支持仅编译Swift 1.x代码。在当前Xcode 10 beta之前的Xcode 7.2及更高版本中,仍然包括“转换为当前的Swift语法”迁移器,该迁移器理论上支持从任何较早版本的Swift进行迁移。
Xcode 6.0至6.2.x支持在OS X Mavericks(10.9)上运行Xcode。 Xcode 6.3是第一个需要OS X Yosemite(10.10)的人。
其他来源:old Xcode downloads。
我不确定此标签的适用程度...
在Xcode 8.x包含Swift 2.3编译器的过程中,它完全受支持用于构建应用程序并提交到App Store。您可能会说,当时它还是“受挫”,因为苹果公司表示不会坚持下去,而Swift 3.0将是后来编译器向后兼容的第一个语言版本。
在Xcode 9中已完全支持Swift 3.2-与Swift 2.3-> 3.0不同,Apple或Swift开源项目没有消息“先删除此版本,然后再将其删除”。明确存在Swift语言3.2、3.3和3.4版本是因为允许开发人员维护“ Swift 3”代码库,同时获得更新的编译器和IDE版本的好处。
答案 1 :(得分:5)