Swift-style-guide: jika vs penjaga

Dibuat pada 25 Okt 2018  ·  3Komentar  ·  Sumber: raywenderlich/swift-style-guide

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:

Pilihan:

if !success { return false }

Tidak disukai:

guard success else { return false }

Paling baik dijelaskan di sini: https://www.natashatherobot.com/swift-when-to-use-guard-vs-if/

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:

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
}

Semua 3 komentar

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).

Apakah halaman ini membantu?
0 / 5 - 0 peringkat