ruby - rubi - sass vs less 2017
Diferencia-a menos que/si (4)
¿Alguien puede explicarme la diferencia entre if
y a unless
y cuándo usarlo?
La diferencia entre if
y a unless
es que son exactamente opuestos entre sí:
-
if
toma una condición, un bloque-luego y un bloque-else opcional, y evalúa el bloque-luego si la condición es verdadera, de lo contrario, evalúa el bloque-else -
unless
tome una condición, un bloque en-siguiente y un bloque-else opcional, y evalúa el bloque-luego si la condición es falsa, de lo contrario, evalúa el bloque-else
O, en otras palabras, significan más o menos lo mismo en Ruby que en inglés.
Usar ''a menos'' es sencillo para mí cuando hay un argumento, pero lo encuentro confuso cuando hay varios. Y cuando usas ||
en lugar de &&
.
"A menos que esto o aquello" sea más difícil para mi cerebro. "si no esto y no eso" es más fácil.
Va a ser más difícil mantener este código en el futuro si lo uso. Entonces yo no.
unless
sea simplemente equivalente a if not
. Cuando usa cuál es una preferencia personal.
unless
sea simplemente un negado if
. Es decir, ejecuta todo lo que contiene si la condición no es verdadera.
unless foo?
# blabla
end
Simplemente significa
if !foo?
# blabla
end
Todo es cuestión de lo que le resulte más fácil de leer, realmente.
Ver también: a menos que, el abusado Ruby condicional