ruby - example - Diferencia entre `not` y`! `En rubí
ruby grape example (2)
Recuerdo haber leído en alguna parte que
not
y
!
se evalúan de manera diferente, y no puedo encontrarlo en la documentación.
¿Son sinónimos?
Son casi sinónimos, pero no del todo.
¡La diferencia es eso
!
tiene una mayor precedencia que
not
, al igual que
&&
y
||
son de mayor prioridad que
and
y
or
.
!
tiene la mayor prioridad de todos los operadores, y
not
uno de los más bajos, puede encontrar
la tabla completa en los documentos de Ruby
.
Como ejemplo, considere:
!true && false
=> false
not true && false
=> true
En el primer ejemplo
!
tiene la
mayor
prioridad, por lo que efectivamente está diciendo
false && false
.
En el segundo ejemplo,
not
tiene una precedencia más baja que
true && false
, por lo que esto "cambió" lo
false
de
true && false
a
true
.
¡La pauta general parece ser que debes seguir
!
, a menos que tenga una razón específica para usar
not
.
!
en Ruby se comporta igual que la mayoría de los otros idiomas, y es "menos sorprendente" que
not
.
Una manera fácil de entender al operador
not
es mirando
not true && false
como equivalente a
!(true && false)