首先需要注意的是,“Swift语言版本”下拉菜单并不选择编译器版本,而是为编译器选择运行的兼容性模式(更多信息请参见此处)。
可以说在这种情况下,下拉菜单的标签名称存在误导,因为在Xcode 11中,“Swift 5”选项实际上意味着“Swift 5.1”。可以通过运行以下操作来证明这一点:
#if swift(<5.1)
print("Less than 5.1")
#else
print("At least 5.1")
#endif
你会发现打印出了至少5.1
。有趣的是,这意味着实际上没有办法使用5.0兼容语言版本运行5.1编译器。