Rangos en Swift (con ejemplos)

En este artículo, aprenderá sobre el rango, su tipo y casos de uso en Swift.

Un rango es un intervalo de valores. Un ejemplo simple de rango es 0,1,2,3,4,5,6,7,8,9 porque los números son secuenciales de 0 a 9.

Podemos crear rango en swift usando dos operadores de rango que se describen a continuación:

1. Operador de rango cerrado (límite inferior… límite superior)

Incluye todos los valores del intervalo (de límite inferior a límite superior). Se declara mediante el operador (3 puntos).

Por ejemplo: 1… 3 define el rango que contiene valores 1,2,3

2. Operador de rango medio abierto (límite inferior …

Incluye todos los valores del intervalo (de límite inferior a límite superior), pero excluye el último número (límite superior). Se declara mediante el … <operador.

Por ejemplo: 1… <3 define el rango que contiene los valores 1 y 2

Tipos de rango

1. Rango cerrado (límite inferior… límite superior)

Los rangos creados con el operador de rango cerrado se denominan rango cerrado. Incluye todos los valores desde el límite inferior al superior.

Ejemplo 1: Impresión de valores de rango cerrado con bucle for-in

 // 1… 3 Defines a range containing values 1, 2 and 3 for value in 1… 3 ( print(value) ) 

Cuando ejecute el programa, la salida será:

 1 2 3 

El ejemplo anterior crea un rango que contiene números del 1 al 3 ( 1… 3). Usamos un bucle for-in para ver qué valores contiene el rango. Para obtener más información sobre los bucles for-in, visite Swift for-in loop.

Usando el bucle for-in, podemos ver que el rango cerrado contiene todos los valores en el rango dado, incluidos los valores límite inferior (1) y superior (3).

2. Rango medio abierto (límite inferior …

Los rangos creados con el operador de rango medio abierto se denominan rangos medio abiertos. Incluye todos los valores desde el límite inferior al límite superior, pero excluye el valor del límite superior.

Ejemplo 2: Impresión de valores de rango medio abierto con bucle for-in

 // 1… <3 Defines a range containing values 1,2 for value in 1… <3 ( print(value) ) 

Cuando ejecute el programa, la salida será:

 1 2 

En el ejemplo anterior, usamos el bucle for-in para ver cómo funciona el rango medio abierto.

En lugar de imprimir todos los valores, podemos ver claramente que el uso del operador medio abierto solo imprime 1 y 2, y excluye el valor del límite superior (es decir, 3).

3. Rango de una cara

El rango de un solo lado son aquellos tipos de rango que continúan lo más lejos posible en una dirección. Se puede crear utilizando tanto el operador de rango medio abierto como el operador de rango cerrado, pero el operador puede tener un valor en un solo lado.

Ejemplo 3: rango unilateral inferior a 2

 let range =… <2 print(range.contains(-1)) print(range.contains(2)) 

Cuando ejecute el programa, la salida será:

 verdadero Falso 

El ejemplo anterior crea un rango de un solo lado utilizando un operador de rango medio abierto que contiene cualquier número menor que dos.

Para validar nuestro resultado hemos utilizado el contains método. El containsmétodo simplemente regresa truesi el elemento se encuentra dentro del rango; de lo contrario, regresa false.

range.contains(-1)comprueba si -1 se encuentra dentro del rango o no. Dado que, su rango unilateral con límite superior 2, y -1 <2, se encuentra dentro del rango y print(range.contains(-1))salidas trueen la pantalla.

However, because of half-open range operator, the upper bound value(2) does not contains inside the range. So, range.contains(2) returns false.

Example 4:One-sided range starting from 2

 let range = 2… print(range.contains(100)) print(range.contains(1)) 

When you run the program, the output will be:

 true false 

The above example creates a one sided range using closed operator that contains numbers from 2 to any values greater than 2.

range.contains(100) checks if 100 lies inside the range or not. Since, its one sided range and 100 is greater than 2, it lies inside the range and prints true in the screen.

However, it has a lower bound value (2), so range.contains(1) returns false .

Things to remember

  • El inicio de un rango debe ser menor o igual que su final. En nuestro ejemplo (lowerBound… upperBound), el valor del límite inferior debe ser menor que el valor del límite superior. Sin embargo, puede ser un valor negativo.
    Ejemplo:
    3… 1 // error fatal: no se puede formar Range con upperBound <lowerBound -3… 1 // Este es un rango válido. El límite inferior / superior puede contener un valor negativo pero debe ser válida la declaración anterior.
  • Podemos iterar sobre el rango (excluyendo el rango de un lado) usando bucles for-in.
  • También podemos usar el operador de rango para acceder a elementos de una matriz.

Articulos interesantes...