Swift鲜为人知的特性:~=运算符是什么?

2022-12-29 0 752

概要共907字,预计今年自学时数5两分钟

Swift鲜为人知的特性:~=运算符是什么?

图源: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()

Swift鲜为人知的特性:~=运算符是什么?

代码在两个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鲜为人知的特性:~=运算符是什么?

Swift不为人知的优点还有许多,比如值绑定模式、vDSP框架、CustomStringConvertible协议、类和静态的区别等等。这些概念你都明白嘛?如果不介绍的话,赶快去查漏补缺吧。

Swift鲜为人知的特性:~=运算符是什么?

留言点赞关注

我们一起分享AI自学与发展的干货

如转载,请后台留言,遵守转载规范

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务