¿Cuál es el significado de hacer en ruby??

¿Cuál es el significado de hacer en ruby??

Ruby es un lenguaje de programación increíble lleno de características y herramientas modernas para la mayoría de los entornos de desarrollo. Ruby tiene una característica potente, a menudo pasada por alto: bloques.

La esencia de este artículo es discutir y comprender qué son los bloques de Ruby, cómo funcionan y cómo podemos usarlos en nuestros programas Ruby.

Comenzaremos con la sintaxis básica y luego discutiremos características como el rendimiento, que pueden ser intimidantes para los nuevos usuarios de Ruby.

¿Qué son los bloques de rubí??

Como es el caso en otros lenguajes de programación, un bloque o cierre es una función anónima que encierra dentro de un DO y finales palabras clave para bloques en línea.

Los bloques le permiten agrupar un bloque de código en componentes separados que puede pasar durante la llamada de método como parámetros.

Hay dos formas de definir un bloque en Ruby: el primero es usar la palabra clave do ... final, la otra está usando un par de aparatos ortopédicos rizados.

Do ... El bloque final se usa principalmente al definir un bloque de código que abarca múltiples líneas, mientras que los aparatos se usan al definir un bloque de código que abarca una sola línea.

Pasas los argumentos de un bloque entre un par de caracteres de tuberías | |

PISTA: Ya sea que use una sola línea o bloque de múltiples líneas, la funcionalidad no cambia. Sin embargo, para fines de legibilidad, use aparatos ortopédicos rizados para un solo bloque de línea y funcionamiento para bloques de múltiples líneas.

Ejemplo básico

Los siguientes son dos ejemplos simples de un bloque Ruby, uno que usa aparatos ortopédicos rizados mientras que los otros usos lo hacen ... Fin.

# linea sola -
['Java', 'C', 'C ++'].cada uno | i | Puntos I
# múltiples línea -> do ... fin
['Java', 'C', 'C ++'].cada do | i |
pone yo
fin

Ambos ejemplos anteriores producen resultados similares:

  • Java
  • C
  • C++

El ejemplo anterior aplica bloques de ruby ​​en la forma más simple: pasamos el bloque en cada método del objeto de matriz. Pasar los argumentos del bloque dentro de un par de caracteres de tuberías; En el ejemplo anterior, el argumento es yo. Finalmente, generamos la funcionalidad del bloque dentro del cuerpo del bloque (en este ejemplo, pone).

Comprender la palabra clave de rendimiento de rubí

Puede usar bloques de rubí dentro de un método estándar. La funcionalidad para realizar esa acción es cortesía de la palabra clave de rendimiento.

Discutamos la palabra clave de rendimiento en detalle.

¿Qué es el rendimiento en Ruby??

El rendimiento de la palabra clave en Ruby le permite llamar a un bloque definido dentro de un método de Ruby.

Cómo funciona

Consideremos un ejemplo que nos ayudará a comprender cómo funciona la palabra clave de rendimiento. Considere el método Ruby simple que se muestra a continuación:

Def Hello
pone "Hola!"
fin

El ejemplo anterior es un método rubí simple que imprime "Hola!".

Si queremos agregar más flexibilidad al programa, podemos permitir que el usuario apruebe un argumento durante la invocación del método.

Por lo tanto, podemos codificar el método como:

Def hola (nombre)
pone "hola" + nombre
fin
Hola ("EE. UU.")

En el segundo ejemplo, tenemos un poco de flexibilidad, ya que podemos pasar cualquier nombre al método como argumento.

Podemos extender esto aún más al usar un bloque Ruby. Cuando pasamos el bloque dentro del método, se ejecutará y devolverá los resultados.

Definición del método de rendimiento

Para crear un método que acepte un bloque, utilizamos el rendimiento de la palabra clave. La sintaxis general es como se muestra:

Def Hello
producir
fin

Tras la definición, podemos llamar al método y pasar un bloque de código. El método ejecutará el código y devolverá el resultado.

Pasar un bloque de rubí a un método

Podemos pasar un bloque al método utilizando la sintaxis del bloque. Por ejemplo, podemos llamar al método anterior con una sintaxis como:

hola pone "hola mundo"

Mientras el método contenga la palabra clave de rendimiento, puede pasar cualquier bloque de código y ejecutarlo.

NOTA: Una vez que defina una palabra clave de rendimiento dentro de un método, debe pasar un bloque al llamar al método. De lo contrario, obtendrá un error de "sin bloqueo (rendimiento)".

Ejemplo 2

Tomemos otro ejemplo:

Def Hello
Ponga "antes del rendimiento."
producir
Ponga "después del rendimiento."
fin
hola pone "yo ceder"

El ejemplo anterior ilustra cómo funciona la ejecución de un método utilizando el rendimiento. La salida del programa está a continuación:

antes del rendimiento
Soy rendimiento
después de rendimiento

Argumentos de Bloque de Ruby

Ruby te permite pasar argumentos al bloque Ruby. Los argumentos de bloque se definen en el bloque de rendimiento y sirven como parámetros del bloque.

El orden en que pasa el argumento es crítico ya que el bloque los aceptará en el orden establecido.

Def Hello
rendimiento ("John Doe", 20)
fin
Hola | Nombre, edad | pone "Hola #name, eres #edad años"

Los parámetros definidos dentro del bloque tienen un alcance local y solo están disponibles en el contexto del bloque.

Por lo tanto, obtendrá una variable indefinida utilizada fuera del alcance del bloque.

Ejemplo 3

La funcionalidad del bloque no cambia en bloques de una sola línea o de múltiples líneas. Podemos ilustrar esto usando el siguiente ejemplo:

área de DEF
rendimiento (7)
fin
área de hacer
pone "El área del cirle es #7 * 3.14159 CM2 "
fin

La salida del ejemplo anterior es:

El área del círculo es de 21.99113cm2

Esto muestra que los bloques de línea múltiple o de una sola línea, la funcionalidad sigue siendo la misma.

Bloques explícitos

En los ejemplos anteriores, hemos definido los bloques como implícitos. Sin embargo, también podemos describirlos como explícitos.

Bloques explícitos significa que asignamos un nombre a la lista de parámetros del método.

Ejemplo de DEF (& Block)
bloquear.llamar
fin
Ejemplo pone "Bloque explícito Ejemplo"

Pasas el nombre del bloque adentro después del ampersand. Usando el nombre del bloque, puede pasar el bloque guardado a otro método.

Manejo de errores de bloque

En las secciones anteriores, mencionamos que el bloque de rendimiento es obligatorio. Sin embargo, puede implementar una lógica simple de manejo de errores si se proporciona el rendimiento. Hacemos esto usando el block_given? Método de núcleo.

El método devuelve un valor booleano de verdadero si el rendimiento está disponible y falso si es lo contrario.

Considere el ejemplo simple a continuación:

Def Hello
Si block_given?
producir
demás
dice "No pasó nada ... [error]"
fin
fin

Si llamamos al método con el valor de rendimiento requerido, la salida será:

hola pone "hola!"
Hola!

Por otro lado, llamar al método sin rendimiento ejecutará el bloque delse como:

Hola
No pasó nada ... [Error]

Usando el valor del block_given? Método, puede implementar la lógica de manejo de errores cuando no hay valor de rendimiento.

Conclusión

En esta guía, discutimos los bloques de rubí, qué son, cómo funcionan y cómo usarlos en sus proyectos.

Gracias por leer!