是否可以将范围运算符.....<与if语句一起使用.也许是这样的:

let statusCode = 204
if statusCode in 200 ..< 299 {
  NSLog("Success")
}

推荐答案

您可以使用"模式匹配"操作符~=:

if 200 ... 299 ~= statusCode {
    print("success")
}

或带有表达式模式(使用模式匹配)的switch语句

switch statusCode {
case 200 ... 299:
    print("success")
default:
    print("failure")
}

请注意,..<表示忽略上限值的范围,因此您可能希望

当以上代码在Xcode 6.3中编译时

if 200 ... 299 ~= statusCode

实际上根本没有生成函数调用,只有三条汇编指令:

addq    $-200, %rdi
cmpq    $99, %rdi
ja  LBB0_1

这与生成的程序集代码完全相同

if statusCode >= 200 && statusCode <= 299

你可以用

xcrun -sdk macosx swiftc -O -emit-assembly main.swift

As of Swift 2,这可以写成

if case 200 ... 299 = statusCode {
    print("success")
}

对if语句使用新引入的模式匹配.

Swift相关问答推荐

SwiftUI状态更新

在`NavigationStack`中使用`SafeAreaInset`修饰符时出现SwiftUI异常行为

在SwiftUI中判断选项时避免重复查看

查找数组中 ** 元素 ** 的属性的最小值和最大值

如果通过计时器循环运行,则检索CPU利用率百分比的SWIFT脚本运行良好.似乎在没有计时器的情况下停留在初始百分比上

如何在macOS中延迟退出应用程序的退出操作?

Swift ui 转换无法按预期工作

macOS 的窗口框架中使用的真实类型和真实类型是什么?

如何将视图添加到多行文本视图的末尾?

如何在 Combine 合并运算符的输出上使用 eraseToAnyPublisher

持久化字符串列表属性 RealmSwift

SwiftUI:调用以编程方式创建的视图的函数

故事板未在助手中显示视图控制器

在 Swift 中实现自定义异步序列

找不到目标AAA的 SPM 工件 - 仅限 Xcode 13.3

为 UIActivityViewController Swift 设置不同的活动项

UICollectionView 自定义单元格在 Swift 中填充宽度

自动布局:获取 UIImageView 高度以正确计算单元格高度

Swift 的 JSONDecoder 在 JSON 字符串中有多种日期格式?

如何将 Int 拆分为其各个数字?