Swift-style-guide: se vs guarda

Criado em 25 out. 2018  ·  3Comentários  ·  Fonte: raywenderlich/swift-style-guide

O guia de estilo atual é claro em relação ao uso de guard em vez de aninhar if , mas pode mostrar um exemplo quando if deve ser usado em vez de guard , também conhecido como onde não há desempacotamento de opcionais necessários:

Preferido:

if !success { return false }

Não preferido:

guard success else { return false }

Melhor descrito aqui: https://www.natashatherobot.com/swift-when-to-use-guard-vs-if/

Comentários muito úteis

Eu quase diria que a seção Failing Guards cobre isso:
Guard statements are required to exit in some way.

...ou como o blog da Natasha colocou:
think of guard as a lightweight Assert

Você deve, portanto, fazer:

guard success else { return false }

O benefício do guard aqui é que o compilador garantirá a saída. Exemplo:

// 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
}

Todos 3 comentários

Eu quase diria que a seção Failing Guards cobre isso:
Guard statements are required to exit in some way.

...ou como o blog da Natasha colocou:
think of guard as a lightweight Assert

Você deve, portanto, fazer:

guard success else { return false }

O benefício do guard aqui é que o compilador garantirá a saída. Exemplo:

// 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 , então sua regra geral seria que - mesmo que você não precise desembrulhar opcionais - você usaria guard sobre if se encontrar uma falha que exija sair. Correto?

@agirault - Sim, isso ou você simplesmente precisa sair (seja ou não devido a uma falha).

Esta página foi útil?
0 / 5 - 0 avaliações