Existe-t-il une meilleure façon d'écrire cette condition?Meilleur moyen d'écrire si la condition
Répondre
Vous testez si les expressions sont vraies ou fausses. Essayez ceci:
if (self.expense.nil? == self.income.nil?)
Peu importe qu'ils soient tous les deux vrais ou tous les deux faux, ils sont identiques.
Vous pouvez utiliser la loi de De Morgan pour la deuxième moitié de la condition if
si (!self.expense.nil? && !self.income.nil?)
devient !(self.expense.nil? || self.income.nil?)
Malgré la logique, puisque vous utilisez un si pour vérifier zéro, vous pouvez raccourcir le code comme donc:
if ((expense && income) || (!expense && !income))
puts "test"
end
Corrigez-moi si je me trompe.
Un problème pouvant survenir * (en fonction des valeurs possibles pour les variables) est si l'une des variables est 'false'. Ensuite, l'if-statment d'origine renvoie un résultat différent du vôtre. Mais cela ne doit être pris en compte que si 'false 'est une valeur possible pour l'une des variables utilisées. – Ragmaanir
bon point ... bien que selon la logique de l'entreprise, il peut encore bien fonctionner – tybro0103
- 1. LINQ - si la condition
- 2. mysql si la condition
- 3. ce qui est le meilleur moyen d'obtenir la table Nombre d'enregistrements avec condition sur SQL Server
- 4. si sans condition?
- 5. F # si pas de condition
- 6. Si le service Condition
- 7. Problème dans un php si la condition
- 8. si la condition dans Spry Région
- 9. Si la condition problème dans le shell
- 10. Javascript si la condition d'évaluer toujours faux
- 11. déclaration LINQ comme si la condition
- 12. vérifier si la condition de valeur 0
- 13. Meilleur moyen de rechercher
- 14. Titres dynamiques meilleur moyen?
- 15. Meilleur moyen d'écrire ceci?
- 16. Comment utiliser si la condition dans la chaîne en php
- 17. Besoin d'un meilleur moyen que la réflexion
- 18. Meilleur moyen d'écrire ceci? Augmenter la vitesse?
- 19. Décrire la structure du tableau
- 20. SQL Server 2005 - Si condition avec union
- 21. meilleur moyen de redimensionner l'image?
- 22. si la condition d'autre pour la base de données variables
- 23. pour la boucle/si la condition dans le script shell
- 24. comment casser la boucle si la condition satisfait dans linq?
- 25. NUnit exécute Tous Si la déclaration evenif la condition échoue
- 26. meilleur moyen d'échanger des fichiers
- 27. Meilleur moyen d'acheter studio visuel
- 28. Meilleur moyen d'obtenir l'objet iframe
- 29. meilleur moyen de le faire?
- 30. Objective-C Runtime: meilleur moyen de vérifier si la classe est conforme au protocole?
Merde, je ne savais pas que Ruby avait un opérateur XOR. C'est la dernière fois que je saute le chapitre de la syntaxe ennuyeuse! ;-) –
@ Tom Morris: En fait, je pense que le xor n'est même pas nécessaire ici. Vérifiez ma mise à jour! –
Yup. C'est mieux dans le contexte de la question. Mais je suis toujours reconnaissant pour l'apprentissage de l'opérateur XOR (^). –