Swift2 Swift 2.2:#如果Swift(>;=x.y)版本构建配置:是否可用于检查子版本?(例如,区分Swift 2.1和2.1.1)

Swift2 Swift 2.2:#如果Swift(>;=x.y)版本构建配置:是否可用于检查子版本?(例如,区分Swift 2.1和2.1.1),swift2,Swift2,有了Swift 2.2,我们现在可以使用#if Swift(>=x.y)版本构建配置 出于好奇,我尝试将其与更低一步的subversion级别比较一起使用(比如说=2.1.1,而不通过XCode 7.1 beta 2中的Swift2.1),但我自己的尝试并没有真正起作用: =x.y.z产生错误, 应为数字文字的命名成员 =x.ywithy=11自然编译并传递,但作为一个版本,2.11 我在网上找不到关于这个的更多细节 问题:这个新版本的构建配置是否仅限于一个.ysubversion,或者是

有了Swift 2.2,我们现在可以使用
#if Swift(>=x.y)
版本构建配置

出于好奇,我尝试将其与更低一步的subversion级别比较一起使用(比如说
=2.1.1
,而不通过XCode 7.1 beta 2中的Swift
2.1
),但我自己的尝试并没有真正起作用:

  • =x.y.z
    产生错误, 应为数字文字的命名成员

  • =x.y
    with
    y=11
    自然编译并传递,但作为一个版本,
    2.11
我在网上找不到关于这个的更多细节


问题:这个新版本的构建配置是否仅限于一个
.y
subversion,或者是否有一些技巧可以绕过这个问题?

回答:新版本的构建配置仅限于两个版本组件


详细设计

目前,我们最多只需要两个版本组件,因为它将 语法更改不太可能使其出现在+0.0.1版本中

更多详细信息可在中找到,尤其是在Chris Lattner和Douglas Gregor之间的交流中:

2015年12月18日下午3:34,道格拉斯·格雷戈通过swift evolution写道:

2015年12月18日下午12:29,Chris Lattner通过swift evolution写道:

如果我们想支持subversion,那么使用字符串的参数是,例如“#if swift(2.2.1)”。这要求参数为字符串,,因为2.2.1不是有效的浮点文本-lexer将不受欢迎

这是LGTM的一个特点,我也希望我们删除引号。 两级版本号应足够


回答:新版本构建配置仅限于两个版本组件


详细设计

目前,我们最多只需要两个版本组件,因为它将 语法更改不太可能使其出现在+0.0.1版本中

更多详细信息可在中找到,尤其是在Chris Lattner和Douglas Gregor之间的交流中:

2015年12月18日下午3:34,道格拉斯·格雷戈通过swift evolution写道:

2015年12月18日下午12:29,Chris Lattner通过swift evolution写道:

如果我们想支持subversion,那么使用字符串的参数是,例如“#if swift(2.2.1)”。这要求参数为字符串,,因为2.2.1不是有效的浮点文本-lexer将不受欢迎

这是LGTM的一个特点,我也希望我们删除引号。 两级版本号应足够


从你的链接。。。。“目前,我们最多只希望有两个版本组件,因为在+0.0.1修订版中,语法更改不太可能使它成为一个版本。”只有两个版本组件是最重要的answer@user3441734天啊,我完全错过了,谢谢!(请随意添加回答)@user3441734我现在也发现,Douglas Gregor在其中写道“两级版本号应该足够了。”,这是在
#if swift(>=…)
签名(而不是字符串
“2.1.1”
)中使用浮点文本的一个可接受的副作用。因此,两个版本组件的限制似乎不是一个积极的选择(一种效果),而是一种方便,w.r.t.比较浮点文本而不是字符串文本。从您的链接。。。。“目前,我们最多只希望有两个版本组件,因为在+0.0.1修订版中,语法更改不太可能使它成为一个版本。”只有两个版本组件是最重要的answer@user3441734天啊,我完全错过了,谢谢!(请随意添加回答)@user3441734我现在也发现,Douglas Gregor在其中写道“两级版本号应该足够了。”,这是在
#if swift(>=…)
签名(而不是字符串
“2.1.1”
)中使用浮点文本的一个可接受的副作用。因此,两个版本组件的限制似乎不是一个积极的选择(一种效果),而是一种方便,w.r.t.比较浮点文本而不是字符串文本。
#if swift(>=2.2)
  print("Active!")
#else
  this! code! will! not! parse! or! produce! diagnostics!
#endif