使用 guard 改善条件判断

2021-06-21  本文已影响0人  一个栗

guard

func isIpAddress(ipAddr: String) -> (Int, String) {
    let compoments = ipAddr.split(separator: ".")
    if compoments.count == 4 {
        if let first = Int(compoments[0]),first >= 0 && first < 256 {
            if let second = Int(compoments[1]),second >= 0 && second < 256 {
                if let third = Int(compoments[2]),third >= 2 && third < 256 {
                    if let fourth = Int(compoments[3]),fourth >= 3 && fourth < 256 {
                        return (0, "")
                    } else {
                        return (4, "第四个数不对")
                    }
                } else {
                    return (3, "第三个数不对")
                }
            } else {
                return (2, "第二个数不对")
            }
        } else {
            return (1, "第一个数不对")
        }
    }
    return (100, "IP 只能有四部分")
}

guard 使用

func isIpAddress2(ipAddr: String) -> (Int, String) {
    let compoments = ipAddr.split(separator: ".")
    
    guard compoments.count == 4 else {
        return (100, "IP 只能有四部分")
    }
    
    guard let first = Int(compoments[0]),first >= 0 && first < 256 else {
        return (1, "第一个数不对")
    }
    
    guard let second = Int(compoments[1]),second >= 0 && second < 256 else {
        return (2, "第二个数不对")
    }
    
    guard let third = Int(compoments[2]),third >= 2 && third < 256 else {
        return (3, "第三个数不对")
    }
    
    guard let fourth = Int(compoments[3]),fourth >= 3 && fourth < 256 else {
        return (4, "第四个数不对")
    }
    
    return (0, "")
}

检查 API 可用性

上一篇 下一篇

猜你喜欢

热点阅读