guard 语句类似if
基于布尔值表达式来执行语句,使用guard语句来条件必须是真才能执行guard之后的语句。
与else不同,guard语句总是有一个--else分局里的代码会在条件不为真的时候执行
看下面箭头
code
//: A UIKit based Playground for presenting user interface
import UIKit
func isIPAddress2(ipAddr:String)->(Int,String){
let compoments=ipAddr.split(separator: ".")
guard compoments.count==4 else{
return (100,"ip只能有四部分")
}
for x in stride(from: 0, to: compoments.count, by: 1){
guard let first=Int(compoments[x]),first>=0 && first<256 else{
return (x+1,"第\(x+1)个数不对")
}
}
return (0,"分")
}
var (code,msg)=isIPAddress2(ipAddr: "1.a.23.123")
print(code)
print(msg)
2
第2个数不对
检查API的可用性,
Swift 拥有内置渡iAPi可以性的检查功能,他能够确保你不会悲剧的使用了对部署目标不可用的api
你可以在if或者guard语句中使用一个可用性条件来有条件地执行代码,基于在运行时你想用的哪个api是可用的
mport UIKit
if #available(iOS 10,macOs 10.12, *){
print("Use ios 10 Apis On IOS,and use macOS 10.12 APIS on macOs")
}else{
print("Fall back to earlier IOS and MacOs APIs")
}