دليل النمط الحالي واضح فيما يتعلق باستخدام guard
بدلاً من تضمين if
، ولكن يمكن أن يُظهر مثالاً عندما يجب استخدام if
بدلاً من guard
، ويعرف أيضًا باسم عندما لا يكون هناك حاجة لفك العناصر الاختيارية:
if !success { return false }
guard success else { return false }
أفضل وصف هنا: https://www.natashatherobot.com/swift-when-to-use-guard-vs-if/
أكاد أقول إن قسم حراس الفشل يغطي هذا:
Guard statements are required to exit in some way.
... أو كما قالت مدونة ناتاشا:
think of guard as a lightweight Assert
لذلك يجب عليك القيام بما يلي:
guard success else { return false }
فائدة guard
هنا هي أن المترجم سيضمن الخروج. مثال:
// This compiles fine and a bug risks going unnoticed
if !success {
// Some code here
// Forgot the return statement
}
// Compiler error, you are required to return and the bug is prevented
guard success else {
// Some code here
// Forgot the return statement
}
RobertGummesson لذا فإن القاعدة الأساسية الخاصة بك ستكون - حتى لو لم تكن بحاجة إلى إلغاء تغليف الاختيارات - ستستخدم guard
على if
إذا واجهت فشلًا يتطلب الخروج. صيح؟
agirault - نعم ، إما هذا أو أنك ببساطة تطلب الخروج (سواء كان ذلك بسبب فشل أم لا).
التعليق الأكثر فائدة
أكاد أقول إن قسم حراس الفشل يغطي هذا:
Guard statements are required to exit in some way.
... أو كما قالت مدونة ناتاشا:
think of guard as a lightweight Assert
لذلك يجب عليك القيام بما يلي:
فائدة
guard
هنا هي أن المترجم سيضمن الخروج. مثال: