Gotcha: die Klebrigkeit von Operatoren 0

Posted by fwoeck
on Monday, May 25

Einmal mehr…

dies


...select {|group| ( my_rolls.include? group.responsible_id ) && blah.true? }

ist NICHT das Gleiche wie dies:


...select {|group| my_rolls.include? group.responsible_id && blah.true? }

argh.

Hier liegt das Problem:

>> [1,2,3].include? 2 && true
=> false

Klammern machen einen schlanken Fuß:

>> [1,2,3].include?(2) && true
=> true

Gotcha: die Zuweisung und logische Operatoren 0

Posted by fwoeck
on Wednesday, December 31

Ganz wichtig:

Der Zuweisungsoperator wird vor dem or oder dem and verarbeitet!

Das bedeutet z.B.:

>> y = false
>> z = true

>> x = y or z
=> true

>> puts x
false

da x = y zuerst ausgeführt wird.

ABER:

>> x = y || z
=> true

>> puts x
true

weil die Formen || und && wiederum stärker binden als =.