102 votes

Retour en Scala

Je suis un programmeur débutant en Scala et je suis tombé sur un comportement bizarre.

def balanceMain(elem: List[Char]): Boolean =
  {
    if (elem.isEmpty)
      if (count == 0)
        true;
      else false;

    if (elem.head == '(')
      balanceMain(elem.tail, open, count + 1);....

Ci-dessus, en gros, je veux retourner vrai si elem.isEmpty y count == 0 . Sinon, je veux renvoyer false.

J'ai lu plus haut qu'il n'était pas nécessaire d'ajouter une déclaration de retour en Scala. J'ai donc omis return ci-dessus. Mais il ne renvoie pas le booléen. Si j'ajoute une instruction de retour comme return true . il fonctionne parfaitement. Pourquoi en est-il ainsi ?

De plus, pourquoi est-il considéré comme une mauvaise pratique d'avoir des déclarations de retour en Scala ?

1voto

Zhu Jinxuan Points 40

Correspondance de cas d'utilisation à des fins de retour anticipé. Cela vous obligera à déclarer explicitement toutes les branches de retour, évitant l'erreur d'oublier d'écrire return quelque part.

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