是否可以将范围运算符.....<与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相关问答推荐

Vapor - 流利的,将对象保存到 PostgreSQL

Swift中的分段错误

Xcode 13.3 将函数调用更改为属性访问

SwiftUI:如何绘制填充和描边的形状?

如何在 SwiftUI 中实现 PageView?

如何使 SwiftUI 列表自动滚动?

如何在 SwiftUI 中以编程方式滚动列表?

SwiftUI HStack 以等间距填充整个宽度

过渡动画在 SwiftUI 中不起作用

Swift 包管理器 - UIKit 依赖

SwiftUI-> 线程 1:致命错误:未找到 MyObject.Type 类型的可观察对象(工作表中的 EnvironmentObject)

如何将 UIColor 转换为 SwiftUI 的 colored颜色

在 SwiftUI 中的 ForEach 中获取索引

UIWindow 未在 iOS 13 中显示内容

在这个例子中美元符号有什么作用?

如何在 swiftUI 中调整 HStack 元素之间的间距?

支持的 Swift 字符串格式说明符有哪些?

类型“Notification.Name”(又名“NSNotification.Name”)没有成员“UIApplication”

设置 statusbarStyle(在 iOS 9.0 中已弃用)

如何为 Swift 类自动创建初始化程序?