if let并guard let提供类似但不同的目的。“else”的情况guard必须退出当前范围。通常这意味着它必须调用return或中止程序。guard用于提供早期返回,而不需要嵌套其余的功能。if let嵌套其范围,并不需要任何特殊的东西。它可以return或不。一般来说,如果if-let块将是函数的其余部分,或者它的else子句中有一个return或中止,那么你应该使用它guard。这通常意味着(至少在我的经验中),如果有疑问,guard通常是更好的答案。但是有很多情况if let仍然适合。