where在if中其实就是或的意思,个人理解(不知道为什么有人写了那么一大堆)
if let x = y where x>0 就是这个意思,可选推断判断x不为空,或者x大于0.
guard大多数就是为了避免多层嵌套if,它的意思与if相反guard中的语句为false时会执行,为了避免多层嵌套通常这样写 guard let x=y where x>0 else{}