swift - 我可以在 Swift 的 guard 语句中使用范围运算符吗?

标签 swift

我正在尝试寻找一种替代方法来执行此类操作,即使用范围运算符。

guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode >= 200 && statusCode <= 299 else {return}

也许是这样的:

guard let statusCode = (response as? HTTPURLResponse)?.statusCode where (200...299).contains(statusCode) else {return}

guard let statusCode = (response as? HTTPURLResponse)?.statusCode, statusCode case 200...299 else {return}

这在 Swift 中可能吗?

最佳答案

如你所愿:

guard
    let statusCode = (response as? HTTPURLResponse)?.statusCode,
    (200...299).contains(statusCode) else {return}

或:

guard
    let statusCode = (response as? HTTPURLResponse)?.statusCode,
    case 200...299 = statusCode else {return}

或:

guard
    let statusCode = (response as? HTTPURLResponse)?.statusCode,
    200...299 ~= statusCode else {return}

关于swift - 我可以在 Swift 的 guard 语句中使用范围运算符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43967229/

相关文章:

ios - 如何最大限度地减少将 html 转换为 NSAttributedString 的时间

Swift:具有多种类型选项的未声明变量

ios - 在 Swift 三元运算符中使用 OR 操作数

ios - WKWebView - 无法加载页面并使用 loadHTMLString 设置自定义字体/css

ios - 在 func draw() 下的 UIBezier 路径的动画 CGAffineTransform(rotate)

ios - Sprite 有时会消失 [Sprite Kit]

ios - Swift 应用程序开发(带 SpriteKit 的游戏)我希望屏幕上出现一些视觉变化,然后在给定时间后消失

ios - 添加 UIbutton 作为 subview 无法在按下时调用选择器

ios - SwiftUI:扩大/缩小列表单元格

ios - OneSignal 用户 ID 返回 Nil - swift