概要共907字,预计今年自学时数5两分钟
图源:unsplash
Swift操作符中的~=称不上有名,许多人并不确切它是做甚么的,该怎样利用。具体来说,采用那个操作符,能查阅两个覆盖范围与否包涵某一值。
责任编辑将透过许多范例,带你介绍那个操作符的功用和用语。已经开始吧!
考量这种一类常用情形:在没碰到任何人严重错误的情形下,要开启互联网允诺并亮出统计数据,因而要建立两个URLSessionDataTask,如下表所示右图:
let task = URLSession.shared.dataTask(with: URL(string: “https://google.com”)!) { (data,response, error) in
guardlet data = 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 = 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自学与发展的干货
如转载,请后台留言,遵守转载规范