blog.pagesd.info // Archives // Traductions

Ruby, or et parenthèses

2012-03-01 #ruby

Question du collègue derrière les écrans de l’autre coté du bureau d’en face : True or False ça doit faire quoi ?

Très bon réflexe de ma part, plutôt que de démarrer mon cerveau, je lance PowerShell + IRB :

C:\> irb
irb(main):001:0> puts true or false
true
=> false
irb(main):002:0>

Question perfide : Et dans l’autre sens ?

Ben pareil ?

irb(main):002:0> puts false or true
false
=> true
irb(main):003:0>

Heu… Qu’est-ce qui se passe là ?

Je recommence autrement :

irb(main):003:0> puts true || false
true
=> nil
irb(main):004:0> puts false || true
true
=> nil
irb(main):005:0>

C’est mieux !

Mais à quoi ça sert d’avoir le choix entre or et || si c’est pour que ça soit pas pareil ?

DuckDuckGo “ruby or” => Ruby boolean operator (or ruby parsing) bug

En résumé, l’affectation est prioritaire sur l’opérateur or.

irb(main):005:0> puts (true or false)
true
=> nil
irb(main):006:0> puts (false or true)
true
=> nil
irb(main):007:0>

Jamais je vais m’en souvenir.

Et sinon, c’était quoi la question déjà ?