operator - ¿Operador sin incremento(++) en Ruby?
ruby ||= (3)
Ruby no tiene operador pre / post incremento / decremento. Por ejemplo,
x++
ox--
no se analizarán. Más importante aún,++x
o--x
no hará nada! De hecho, se comportan como múltiples operadores de prefijo unarios:-x == ---x == -----x == ......
Para incrementar un número, simplemente escribax += 1
.
Eso lo explica mejor que nunca.
EDITAR: y la razón del propio autor de la lengua ( source ):
- ++ y - NO son operadores reservados en Ruby.
- Los operadores de incremento / decremento de C son en realidad tareas ocultas. Afectan a las variables, no a los objetos. No se puede realizar la asignación a través del método. Ruby usa el operador + = / - = en su lugar.
- El yo no puede ser un objetivo de asignación. Además, la alteración del valor del número entero 1 puede causar una confusión grave en todo el programa.
Posible duplicado:
¿Por qué Ruby no soporta i ++ o i— para fixnum?
¿Por qué no hay operador de incremento en Ruby?
p.ej
i++
++i
¿Se usa el operador ++
para algo más? ¿Hay una razón real para esto?
De una source :
(1) ++ y - NO son operadores reservados en Ruby.
(2) Los operadores de incremento / decremento de C son en realidad tareas ocultas. Afectan a las variables, no a los objetos. No se puede realizar la asignación a través del método. Ruby usa el operador + = / - = en su lugar.
(3) el yo no puede ser un objetivo de asignación. Además, la alteración del valor del número entero 1 puede causar una confusión grave en todo el programa.
matz.
No creo que la notación esté disponible porque, a diferencia de PHP o C, todo en Ruby es un objeto.
Claro que podrías usar $var=0; $var++
$var=0; $var++
en PHP, pero eso es porque es una variable y no un objeto. Por lo tanto, $var = new stdClass(); $var++
$var = new stdClass(); $var++
probablemente lanzaría un error.
No soy un programador de Ruby o RoR, así que estoy seguro de que alguien puede verificar lo anterior o rectificarlo si es incorrecto.