N’arrive pas à trouver comment faire pour vérifier si un objet est une valeur booléenne facilement. Y a-t-il quelque chose comme ceci dans Ruby ?
En ce moment je fais cela et tiens à le raccourcir :
N’arrive pas à trouver comment faire pour vérifier si un objet est une valeur booléenne facilement. Y a-t-il quelque chose comme ceci dans Ruby ?
En ce moment je fais cela et tiens à le raccourcir :
Je trouve cela d’être concis et mieux documenté :
Si vous utilisez des Rails ou ActiveSupport, vous pouvez même faire une requête directe à l’aide``
Vérification contre toutes les valeurs possibles n’est pas quelque chose que je recommande pour les flotteurs, mais pour boolean, c’est possible !
Il n’y a aucun classe de Ruby, la seule façon de vérifier est de faire ce que vous faites (en comparant l’objet contre
et ou la classe de l’objet contre
et `` ). Ne peut pas penser pourquoi vous auriez besoin cette fonctionnalité, vous pouvez expliquer ? :)
Si vous vraiment besoin de cette fonctionnalité cependant, vous pouvez le hack dans :
Comme indiqué ci-dessus il n'y a pas de classe boolean juste TrueClass et FalseClass cependant, vous pouvez utiliser n'importe quel objet que l'objet de si/moins et tout est vrai, sauf cas de FalseClass et de néant
Tests booléens retourner une instance de la FalseClass ou TrueClass
(1 > 0).class #TrueClass
La suite monkeypatch pour Objet de vous dire si quelque chose est une instance de TrueClass ou FalseClass
class Object
def boolean?
self.is_a?(TrueClass) || self.is_a?(FalseClass)
end
end
L'exécution de certains tests de la cisr donne les résultats suivants
?> "String".boolean?
=> false
>> 1.boolean?
=> false
>> Time.now.boolean?
=> false
>> nil.boolean?
=> false
>> true.boolean?
=> true
>> false.boolean?
=> true
>> (1 ==1).boolean?
=> true
>> (1 ==2).boolean?
=> true
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.