Faisons-nous d'autre avec moins d'instruction?
Il existe l'opinion sur le else
déclaration que nous ne devrions pas l'utiliser avec unless
?
Quelqu'un peut-il expliquer pourquoi il en est, ou sommes-nous libres d'aller où l'on aime?
à moins que le reste est difficile à comprendre, et il peut être facilement remplacé par un if else.
D'autre syntaxe existent dans toutes les langues. et si elle n'est pas en javascript puis il y a une autre question pourquoi il n'est pas en javascript
Sauf si c'est difficile pour le lecteur de suivre, c'est la fin. D'autre ne le font pas.
D'autre syntaxe existent dans toutes les langues. et si elle n'est pas en javascript puis il y a une autre question pourquoi il n'est pas en javascript
Sauf si c'est difficile pour le lecteur de suivre, c'est la fin. D'autre ne le font pas.
OriginalL'auteur Waleed Arshad | 2016-07-28
Vous devez vous connecter pour publier un commentaire.
Vous avez certainement peut utilisation
else
avecunless
. E. g.:Imprimé "x est inférieur ou égal à 2".
Mais juste parce que vous peut faire quelque chose ne signifie pas que vous devrait. Le plus souvent, ces constructions sont compliquées à lire, et que vous seriez mieux servi à la formulation de votre état, dans un sens positif, à l'aide d'un simple
if
:OriginalL'auteur Mureinik
Oui, nous pouvons utiliser
unless
avecelse
. Nous sommes libres d'aller où nous aimons, mais certaines personnes ont l'opinion que ce n'est pas une bonne habitude d'utiliserelse
avecunless
. Nous devons éviter de faire de ce.Malheureusement, à moins que la déclaration prend uniquement en charge le reste de construire pas elsif ou elseunless en elle.
Cela peut être aussi la raison pour laquelle il nous restreindre.
unless
causes, je propose d'ajouter non seulementelsif
mais aussielsunless
.Bien sûr, depuis le "else" est juste à court de main pour la nidification d'un autre si à l'intérieur de l'autre, vous pouvez toujours écrire à moins que ... else { à moins que ... else { à moins que ... } }. Profitez de débogage en 6 mois de temps, mais...
Si cela a fonctionné
puts "three"
ne sera jamais exécutée.puts "two"
aussi ne sera jamais exécutée. Comme écrit ci-dessus le code ci-dessus donne d'erreur si vous essayez de l'exécuter parce que le code contient des erreurs de syntaxe et de l'erreur, c'est que nous ne sommes pas autorisés à utiliser elsif avec moins.OriginalL'auteur sohail khalil
Rien n'empêche quiconque d'utiliser
unless - else
. Il est parfaitement valide.Dans certains cas,
unless
est facile à comprendre. Mais lorsqu'il est combiné avec unelse
déclaration,if - else
est toujours plus facile à comprendre queunless - else
. Imaginez que vous essayez de comprendre l'autre partie d'ununless - else
condition. C'est une double négation, et la double négation est juste très pas pas de mal.Également si il ya beaucoup de conditions avec des combinaisons de
&&
et||
opérateurs,unless
devient de plus en plus difficile à comprendreMon être mon exemple était mauvais. La personne qui a écrit le code peut comprendre facilement. Mais pour une autre personne en regardant le code, trouverez peut-être un peu déroutant. En outre, nous parlons de tout sauf de la condition else.
Rails développeurs peuvent utiliser la fréquence, et donc n'ont pas de problèmes avec
unless
, je suis à la non-développeur rails - faire. Une sorte de devise fois, j'ai trouvé est: "Ne pas masquer votre (boolean) déclaration inutiles couches de la négation".d'accord que le niveau de compréhension de la difficulté dépend des préférences du programmeur.
Je suis en désaccord.. Dans certains cas, moins que est facile à comprendre. Mais lorsqu'il est combiné avec un else, if - else est toujours plus FACILE à comprendre qu'à moins que les autres... Aussi, si il ya beaucoup de conditions avec des combinaisons de && et || les opérateurs, sauf devient de plus en plus difficile à comprendre.
OriginalL'auteur Santhosh
Ruby permet, mais en anglais "if ... else" (ou "si ... sinon") est une construction commune, alors que "à moins que ... else" est à peu près inconnue, au point où de nombreux natifs de se faire rejeter comme incorrect.
Il en résulte une certaine confusion avec
unless/else
en Ruby. Les personnes dont la langue maternelle n'autorise pas il ne sont pas utilisés pour la suite. C'est pourquoi il ya beaucoup d'opinions contre elle. Depuis Ruby prend en charge, vous êtes bien entendu libre de le faire de toute façon.OriginalL'auteur Steve Jessop
Oui, on peut utiliser
unless
avecelse
. mais ce n'est pas la meilleure pratique pour écrireCe n'est pas un code plus lisible. Ici est le Ruby style de codage guide de laquelle la plupart des développeurs sont à suivre.
OriginalL'auteur hgsongra
Techniquement, il est parfaitement acceptable d'utiliser un
unless
avec unelse
:Le seul problème est qu'il est parfois difficile à lire et à comprendre. Parce que le code est beaucoup plus souvent lire que d'écrire, il fait beaucoup de sens de se concentrer sur readablity et d'écrire du code qui est facile à comprendre pour les autres développeurs à l'avenir.
Par conséquent, vous souhaiterez peut-être modifier:
Ou même mieux de faire supprimer la négation de la condition complètement:
if true
est juste plus facile à comprendre et simple à analyser dans vous de la tête queif !true
ouunless true
. Traiter avec des négations (ou même parfois en doubles négations) qui vous fait réfléchir à deux fois. Par conséquent, la communauté cherche à l'éviter.Mais techniquement, c'est très bien...
OriginalL'auteur spickermann
Il pourrait être approprié (plus lisible que n'importe quel autre), et à utiliser
unless ... else ...
lorsque le code duelse
bloc est très long et le code de launless
bloc est très court.Si vous avez écrit cela dans l'autre sens,
le reste de la clause pourrait être tellement éloigné de son état, ce que vous feriez gens défiler vers le haut et vers le bas pour garder les choses en ordre dans leurs têtes.
Cet exemple particulier est mieux écrit sans
else
à tous...... mais cette transformation n'est pas toujours possible.
OriginalL'auteur zwol
D'exécuter du code si la condition est fausse. Si la condition est vraie, le code spécifié dans la clause else est exécutée.
On peut utiliser d'autre à moins que mais son une mauvaise approche.
OriginalL'auteur Umar Khan