参考:https://www.cnblogs.com/edensyd/p/9566979.html
guard expression else { //语句 //必须包含一个控制语句:return,break,continue或throw。 } 这里,expression是一个布尔表达式(返回true或者false)。 如果对表达式求值false,guard则执行代码块内的语句。 如果对表达式求值true,guard则从执行中跳过代码块内的语句
为啥有if ... else ... 还要用guard ?
class CloseRange { let start: Int let end: Int init?(startValue: Int , endValue: Int) { guard startValue < endValue else { print("结束值(endValue) 应大于 起始值(startValue)") return nil } self.start = startValue self.end = endValue } } let customRange = CloseRange(startValue: 3, endValue: 5) if let customRange = customRange { print("第一个对象的起始值是:(customRange.start)") } let customRange2 = CloseRange (startValue: 5, endValue: 3) if let customRange = customRange2 { print("第二个对象的起始值是:(customRange.start)") }else{ print("第二个对象是空对象"); } 打印: 结束值3 应大于 起始值5 第二个对象是空对象