Los proc en Ruby
Los bloques no son objetos, pero pueden convertirse en ellos gracias a la clase Proc. Los objetos tipo proc son bloques que se han unido a un conjuto de variables locales. Esto se hace gracias al método lambda del módulo Kernel.
Un bloque creado con lambda actúa como un método: si no especificas el número correcto de argumentos, no puedes llamar al bloque. La clase Proc tiene un método para llamar al bloque: el método call
La salida es:
Para usar argumentos con lambda:
La salida es:
Los procs son muy útiles por que:
- No puedes pasar métodos dentro de otros métodos (usarlos como argumentos); pero si puedes usar procs como argumentos.
- Los métodos no pueden devolver otros métodos; pero sí pueden devolver un procs.
la salida es: