Swift鲜为人知的特性:~=运算符是什么?
全文共907字 , 预计学习时长5分钟
本文插图
图源:unsplash
Swift运算符中的~=算不上出名 , 很多人并不清楚它是做什么的 , 该如何运用 。 简而言之 , 使用这个运算符 , 可以查看一个范围是否包含某个值 。
本文将通过一些例子 , 带你了解这个运算符的用处和用法 。 开始吧!
考虑这样一种常见情况:在没有遇到任何错误的情况下 , 要启动网络请求并打出数据 , 因此要创建一个URLSessionDataTask , 如下所示:
let task = URLSession.shared.dataTask(with: URL(string: ''https://google.com'')!) { (data,response, error) in guardlet data = http://news.hoteastday.com/a/data, let response = response as? HTTPURLResponse, (200..<300) ~=response.statusCode else { iflet error = error { print(error) } else { print(''Somethingwent wrong'') } return } print(''Received data: (data)'') }
上述代码中就使用了~= , 以检查状态码整数值是否在200到300之间(不包括两极) , 如果是 , 则结果是成功的 。 否则 , 将输出一条错误消息 。
更改print语句并启动任务 , 实际上会得到有效响应 , 状态码是200:
let task = URLSession.shared.dataTask(with: URL(string: ''https://google.com'')!) { (data,response, error) in guardlet data = http://news.hoteastday.com/a/data, let response = response as? HTTPURLResponse, (200..<300) ~=response.statusCode else { iflet error = error { print(error) } else { print(''Somethingwent wrong'') } return } print(''Received data: (data), status code: (response.statusCode)'') } task.resume()
本文插图
代码在一个Xcode Playground中运行
再来看看另一个在后台使用~=运算符的例子 。 假设有一个简单的Coordinate结构并将其实例化:
structCoordinate { let value: (latitude:CLLocationDegrees, longitude: CLLocationDegrees) } let coordinate =Coordinate( value: ( latitude: 40.7128, longitude: 74.0060 ) )
使用switch语句 , 查看这个坐标是否在纽约市的坐标范围内(该实例被简化):
switch coordinate.value { case (40...41, 73...76): print(''Hmm... seems like we found NewYork City'') default: print(''Unknown coordinates'') }
指定纬度值和经度值的范围 。 在后台 , ~=运算符使用==运算符将范围内的每个值与coordinate的值进行比较:
本文插图
Swift鲜为人知的特性还有很多 , 比如值绑定模式、vDSP框架、CustomStringConvertible协议、类和静态的区别等等 。 这些概念你都明白嘛?如果不了解的话 , 赶快去查漏补缺吧 。
本文插图
留言点赞关注
我们一起分享AI学习与发展的干货
【Swift鲜为人知的特性:~=运算符是什么?】如转载 , 请后台留言 , 遵守转载规范
推荐阅读
- 【湖南】那些街边不起眼的小小打印店,背后却是鲜为人知的产业帝国
- 威锋网|《地平线:零之曙光》PC 版新特性:支持超宽屏解锁帧率
- 原呵呵|Swift5(2020)初步评测:轻奢电脑,适合旅行,宏基
- 原呵呵 Swift5(2020)初步评测:轻奢电脑,适合旅行,宏基
- 机器人研究人员创造BionicSwift机器人鸟 用人造羽毛飞行
- cnBeta|拥有人造羽毛进行飞行,研究人员创造BionicSwift机器人鸟
- cnBeta研究人员创造BionicSwift机器人鸟 拥有人造羽毛进行飞行
- 科技説説説iPhone 12新特性突然被确认,数亿果粉始料未及,幸福来得太突然!
- 「运行」开发者用SwiftUI模拟iPad运行macOS效果
- macOS|开发者用SwiftUI模拟iPad运行macOS效果
