84 votes

Correspondance de modèle vs if-else

Je suis novice en Scala. Récemment, j'écrivais une application de passe-temps et je me suis surpris à essayer d'utiliser la correspondance de motifs au lieu de if-else dans de nombreux cas.

 user.password == enteredPassword match {
  case true => println("User is authenticated")
  case false => println("Entered password is invalid")
}

à la place de

 if(user.password == enteredPassword)
  println("User is authenticated")
else
  println("Entered password is invalid")

Ces approches sont-elles égales ? L'un d'eux est-il plus préférable qu'un autre pour une raison quelconque ?

32voto

retronym Points 35066

Ne pas faire correspondre un motif sur un seul booléen ; utilisez un if-else.

Incidemment, le code est mieux écrit sans dupliquer println .

 println(
  if(user.password == enteredPassword) 
    "User is authenticated"
  else 
    "Entered password is invalid"
)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X