我正在尝试寻找一种替代方法来执行此类操作,即使用范围运算符。
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/