這篇文章主要講解了“Swift鮮為人知的特性有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Swift鮮為人知的特性有哪些”吧!
創(chuàng)新互聯(lián)專注于古丈網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供古丈營銷型網(wǎng)站建設,古丈網(wǎng)站制作、古丈網(wǎng)頁設計、古丈網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)公司服務,打造古丈網(wǎng)絡公司原創(chuàng)品牌,更為您提供古丈網(wǎng)站排名全網(wǎng)營銷落地服務。
考慮這樣一種常見情況:在沒有遇到任何錯誤的情況下,要啟動網(wǎng)絡請求并打出數(shù)據(jù),因此要創(chuàng)建一個URLSessionDataTask,如下所示:
let task = URLSession.shared.dataTask(with: URL(string: "https://google.com")!) { (data,response, error) in guardlet datadata = data, let responseresponse = response as? HTTPURLResponse, (200..<300) ~=response.statusCode else { iflet errorerror = error { print(error) } else { print("Somethingwent wrong") } return } print("Received data: \(data)") }
上述代碼中就使用了~=,以檢查狀態(tài)碼整數(shù)值是否在200到300之間(不包括兩極),如果是,則結果是成功的。否則,將輸出一條錯誤消息。
更改print語句并啟動任務,實際上會得到有效響應,狀態(tài)碼是200:
let task = URLSession.shared.dataTask(with: URL(string: "https://google.com")!) { (data,response, error) in guardlet datadata = data, let responseresponse = response as? HTTPURLResponse, (200..<300) ~=response.statusCode else { iflet errorerror = error { print(error) } else { print("Somethingwent wrong") } return } print("Received data: \(data), status code: \(response.statusCode)") } task.resume()
再來看看另一個在后臺使用~=運算符的例子。假設有一個簡單的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") }
指定緯度值和經(jīng)度值的范圍。在后臺,~=運算符使用==運算符將范圍內的每個值與coordinate的值進行比較:
Swift鮮為人知的特性還有很多,比如值綁定模式、vDSP框架、CustomStringConvertible協(xié)議、類和靜態(tài)的區(qū)別等等。
感謝各位的閱讀,以上就是“Swift鮮為人知的特性有哪些”的內容了,經(jīng)過本文的學習后,相信大家對Swift鮮為人知的特性有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!