Panduan gaya saat ini jelas tentang menggunakan guard
alih-alih bersarang if
, tetapi itu bisa menunjukkan contoh ketika if
harus digunakan alih-alih guard
, alias di mana tidak perlu membuka bungkus opsional:
if !success { return false }
guard success else { return false }
Paling baik dijelaskan di sini: https://www.natashatherobot.com/swift-when-to-use-guard-vs-if/
Saya hampir akan mengatakan bahwa bagian Penjaga Gagal mencakup ini:
Guard statements are required to exit in some way.
...atau seperti yang dikatakan blog Natasha:
think of guard as a lightweight Assert
Oleh karena itu, Anda harus melakukan:
guard success else { return false }
Manfaat guard
di sini adalah bahwa kompiler akan menjamin keluarnya. Contoh:
// 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 jadi aturan praktis Anda adalah - bahkan jika Anda tidak perlu membuka bungkusan opsional - Anda akan menggunakan guard
lebih dari if
jika Anda menemui kegagalan yang mengharuskan Anda keluar. Benar?
@agirault - Ya, baik itu atau Anda hanya perlu keluar (apakah itu karena kegagalan atau tidak).
Komentar yang paling membantu
Saya hampir akan mengatakan bahwa bagian Penjaga Gagal mencakup ini:
Guard statements are required to exit in some way.
...atau seperti yang dikatakan blog Natasha:
think of guard as a lightweight Assert
Oleh karena itu, Anda harus melakukan:
Manfaat
guard
di sini adalah bahwa kompiler akan menjamin keluarnya. Contoh: