Rangos rápidos | audacia

Con Swift, los rangos son una excelente herramienta que se puede usar para trabajar con matrices para realizar operaciones complejas con facilidad. Los rangos pueden ayudar a reducir y simplificar el trabajo y el código involucrado. En esta publicación, explicaremos qué rangos hay en Swift, los tipos de rangos y cómo usarlos con ejemplos relevantes. ¡Vamos a empezar!

Contenido

¿Qué son los rangos rápidos?

Un rango Swift es un operador de rango. En un rango, definimos dos valores que se pueden comparar entre sí, como números enteros o caracteres. Los rangos son una excelente manera de configurar una matriz con facilidad.

¿Cómo escribo un rango de Swift?

¡Escribir un rango Swift es fácil! Comenzamos con el valor límite inferior, insertamos «…» y terminamos con un valor límite superior. El “…” es un operador que incluye los límites superior e inferior del rango.

Veamos un rango de enteros:

//Creating a range from 1 to 10
let basicRange10 = 1...10
for i in basicRange10 {
    print(i)
}

producción:

Observe cómo usamos el operador «…» para definir un rango de enteros del 1 al 10. En este ejemplo, iteramos el rango en un bucle for e imprimimos cada valor entero.

¿Qué pasaría si quisiéramos iterar sobre un rango de elementos de matriz?

//Printing only array items in the range
let groceryList = ["apple","bananas","bread","milk","peanut butter"]
print(groceryList[2...4])

Producción:

["bread", "milk", "peanut butter"]

Aunque el índice de la matriz comienza en 0, el rango comienza en 1. Esta es la razón por la cual la salida no fue [“bananas”, “bread”, “milk”]

Tipos de rangos rápidos

Ahora que tenemos una comprensión básica de los rangos de Swift, veamos los diferentes tipos. Hay 3 tipos de rangos de Swift:

Cerrado

Un operador de rango cerrado (a. . .b) es un rango que incluye sus dos valores finales inferior y superior. Usamos el operador “…” como se ve en los dos ejemplos anteriores.

Ejemplo de operador de rango cerrado:

//Print even numbers
let twentyToThirty = 20...30
for i in twentyToThirty {
    if( i % 2 == 0){
        print(i)
    }
}

Producción:

Nuestros valores inferior y superior se imprimen como se esperaba cuando se usa un operador de rango cerrado.

Medio abierto

Un operador de rango semiabierto (a. .

Veamos un ejemplo en el que alguien anotó el valor final de un rango semiabierto:

//What if someone scored the upper range value of a half open range?
let passingRange = 0..<60
if( passingRange.contains(60)){
    print("60 is a passing score")
}else {
    print("60 is not a passing score")
}

Producción:

60 is not a passing score

Por lo tanto, si alguien obtuvo un puntaje de 60, no se consideraría un puntaje de aprobación si la prueba usara un rango medio abierto en lugar de un rango cerrado.

Unilateral

Por último, tenemos el operador de rango Swift unilateral que puede usar “. . .” o el «. . <” operador sin límite superior o inferior.

Volvamos a nuestro ejemplo de rango cerrado y hagámoslo unilateral:

//What would happen if we had no upper bound?
let twentyToDotDotDot = 20...
for i in twentyToDotDotDot {
    if( i % 2 == 0){
        print(i)
    }
}

Veríamos la rueda de la muerte en nuestra aplicación Playground porque intentaríamos encontrar todos los números pares desde el 20 hasta el infinito.

pensamientos finales

¡Y ahí lo tienes! Una introducción a las gamas Swift. Pero solo estamos arañando la superficie de la verdadera potencia y versatilidad de las gamas Swift. ¿Interesado en aprender más? Explore conceptos como convertir, inspeccionar, sujetar y verificar la contención de rangos en la página de desarrollador de Apple, o conviértase en un desarrollador de iOS con el programa Nanodegree de Udacity. ¡Feliz codificación!

Glosario

  • Rango rápido: un operador de rango que define valores entre un valor inferior y superior
  • Rango cerrado: un rango Swift que incluye sus dos valores finales inferior y superior
  • Campo semiabierto: un rango Swift que solo incluye su valor final inferior
  • Rango unilateral: un rango Swift que no tiene límite superior o inferior

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *