Rangos en rubí

Rangos en rubí
Los rangos están en todas partes en nuestra vida diaria. Por ejemplo, podría ser cuánto tiempo llevará leer este artículo, la distancia entre Moscú y Londres, la cantidad de días entre ahora y Navidad, etc.

Aunque los rangos pueden implementarse de manera diferente en un lenguaje de programación, el concepto central no difiere.

En este tutorial, aprenderemos a usar rangos en el lenguaje de programación de Ruby.

¿Qué es un rango??

¿Qué es un rango, específicamente?? Un rango es un conjunto de valores con un punto de partida y punto de finalización.

En la programación, un rango puede ser un conjunto de números, caracteres, cuerdas y otros objetos. La idea general es que un rango debe tener un comienzo y un final.

Cómo crear un rango en Ruby

La forma más sencilla de crear un rango en Ruby es usar anotaciones de puntos. El siguiente ejemplo ilustra cómo funciona una gama en Ruby:

para yo en 1 ... 10
pone yo
fin

El ejemplo anterior debe devolver todos los elementos de un rango de 1 a e incluyendo 10.

Ruby usa anotaciones de puntos para indicar el rango de valores.

Dos puntos (...) se denominan un rango inclusivo porque incluye el valor final en los elementos. Por ejemplo, 1 ... 10 comenzará desde 1 hasta las 10.

Tres puntos (...) se denominan rango exclusivo porque no incluye el valor final en el rango. Por ejemplo, 1 ... 10 comienza desde 1 y termina a las 9.

Secuencias

La implementación básica de rangos de rubí es generar o pasar por una secuencia de valores. En el ejemplo anterior, utilizamos un rango dentro de un bucle for para generar una secuencia de valores entre 1 y 10 (inclusive).

También podemos usar el rango para colocar los elementos en una matriz, especialmente cuando sabemos el total de elementos.

Considere la matriz a continuación:

bases de datos = ["mysql", "postgresql", "redis", "mongodb", "firestore"]

Para obtener los elementos en la matriz, podemos usar los índices de elementos, lo que conduciría a 5 piezas de código repetitivas.

Podemos usar un rango como:

bases de datos = ["mysql", "postgresql", "redis", "mongodb", "firestore"]
para yo en 0 ... 4
Pone bases de datos [i]
fin

Aunque la implementación anterior no es la forma más eficiente de hacer una operación de este tipo, es más fácil de leer que un montón de índices repetitivos.

Es bueno tener en cuenta que los rangos no se limitan solo a los valores enteros. Podemos generar todas las letras en el alfabeto utilizando un rango simple.

pone ('a' ... 'z').a_a

El código anterior generará todos los caracteres entre A y Z y los pondrá en una matriz utilizando el método TO_A.

Condicional

Los rangos también son implementables en expresiones condicionales. Por ejemplo, supongamos que queremos determinar si un valor es entre varios grupos de números.

Tomemos un número aleatorio y preguntemos: si el número entre 1 y 10, 20 y 30, 40 y 50, y tal.

Podemos implementar esto utilizando algunas líneas de código como:

aleatorio = 34
Correcto = Caso aleatorio
Cuando 1 ... 10 entonces "Estoy aquí"
Cuando 11 ... 20 entonces "Tengo más de 10"
Cuando 21 ... 30 entonces "intente por encima de 20"
Cuando 31 ... 40 entonces "Estoy por encima de 15 x 2"
Cuando 41 ... 50 entonces "Estoy a medio camino!"
demás
pone "Estoy completamente perdido!"
fin
pone correcto

El código anterior utiliza rangos para verificar algunos soportes de rango y evaluar si el valor aleatorio está dentro de cualquier conjunto.

Intervalos

La implementación final de rangos de rubí es probar si un valor se encuentra dentro de un intervalo de otros valores. Apenas se puede distinguir de los condicionales, pero utiliza operadores lógicos para evaluar.

Por ejemplo:

if ((1 ... 10)) === 7
Ponga "tal vez verifique otros lugares"
ELSIF
Ponga "Podría estar aquí"
fin

La simple implementación anterior verifica si el valor 7 está dentro del rango de 1 y 10 y ejecuta un código si es verdadero.

Incluir y cubrir

Hay dos métodos que puede usar cuando trabaja con rangos de rubí. Estos son la inclusión y la portada.

El método de incluir funciona verificando si un valor está en el rango, mientras que la cubierta verifica el valor inicial y final del rango para una coincidencia.

Pons (1 ... 10).incluir? 10
Pons (1 ... 10).cubrir? 1

Clausura

En esta guía rápida, discutimos los conceptos básicos de usar rangos en Ruby. Aunque hay más, el concepto discutido en este tutorial debería ayudarlo a comprender los rangos en Ruby. Para obtener más información, consulte la documentación oficial.