English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
En este artículo, aprenderá sobre Swift Range, tipos y casos de uso.
Rango (intervalo) es el intervalo de valores. Un ejemplo simple de rango es 0 de1、2、3、4、5、6、7、8、9porque los números van de 0 a9son contiguos.
Podemos crear intervalos rápidamente usando los dos operadores de rango descritos a continuación:
Incluye todos los valores del intervalo (límite inferior a límite superior). Se usa … (3puntos) operador declara.
Por ejemplo: 1...3 Define el intervalo que contiene valores1,2,3rango
Incluye todos los valores del intervalo (inferior a inferior límite a límite superior), pero no incluye el último (límite superior) número. Se declara usando el operador ..<.
Por ejemplo: 1..<3 definir valores que contienen1y2rango
El rango creado utilizando el operador de rango cerrado se llama intervalo cerrado. Incluye todos los valores desde el límite inferior hasta el límite superior.
//1... 3definir valores que contienen1、2y3rango for value in 1...3 { print(value) }
Ejecutando el programa, la salida es:
1 2 3
El ejemplo anterior crea un rango que contiene1hasta3(1...3) rango de números. Usamos un for-en el bucle for-en el bucle for para ver qué valores contiene el rango. Para obtener más información sobre forSwift for-en el bucle for)。
usar for-en el bucle for, podemos ver que el intervalo cerrado contiene todos los valores en el rango dado, incluyendo el límite inferior (1) y el límite superior (3)。
El intervalo creado utilizando el operador de rango semiabierto se llama intervalo semiabierto. Incluye todos los valores desde el límite inferior hasta el límite superior, perono incluyelímite superior.
// 1..<3 definir un rango que contiene valores 1,2 for value in 1..<3 { print(value) }
Ejecutando el programa, la salida es:
1 2
En el ejemplo anterior, usamos for-en el bucle for para ver cómo funciona el intervalo semiabierto.
No es necesario imprimir todos los valores, podemos ver claramente que al usar el operador de rango semiabierto solo se imprime1y2y no incluye el valor superior (es decir3).
Un intervalo unidireccional es un intervalo que es lo más continuo posible en una dirección. Puede crearse utilizando el operador de rango semiabierto y el operador de rango cerrado, pero los operadores solo tienen un valor en un lado.
let range = ..<2 print(range.contains(-1)) print(range.contains(2))
Ejecutando el programa, la salida es:
true false
El ejemplo anterior utiliza el operador de intervalo semiabierto para crear un intervalo unidireccional que contiene valores inferiores a2cualquier número.
Para verificar nuestros resultados, usamos el método contains. Si el elemento está dentro del intervalo, contains devuelve true, de lo contrario devuelve false.
range.contains(-1) se verifica -1 ¿está dentro del intervalo?. Debido a que el límite superior del intervalo unidireccional es2 y-1 <2por lo que está dentro del intervalo y la declaración print(range.contains(-1)) se muestra en la pantalla como true.
pero, debido al operador de intervalo semiabierto, el valor superior (2) no está incluido en el intervalo. Por lo tanto, range.contains(2) devuelve false.
let range = 2... print(range.contains(100)) print(range.contains(1))
Ejecutando el programa, la salida es:
true false
El ejemplo anterior utiliza el operador de rango cerrado para crear un rango de un lado que contiene desde2a mayor2de cualquier valor numérico.
range.contains(100) Comprueba100 está dentro del rango. Debido a que es un rango de un lado, y100 es mayor2, por lo que está dentro del rango y se imprime en la pantalla salida true.
Pero tiene un valor inferior (2) por lo que range.contains(1) Devuelve false.
El punto de partida del rango debe ser menor o igual que su punto de llegada. En nuestro ejemplo (lowerBound...upperBound), el valor inferior debe ser menor que el valor superior. Pero puede ser negativo.
Por ejemplo:
3...1 // Error: No se puede usar upperBound < lowerBound para formar Range -3...1 // Este es un rango válido. Lowerbound/Upperbound puede contener valores negativos.
Podemos usar for-Bucle for-in para recorrer todo el rango (excluyendo el rango de un lado).
También podemos usar el operador de rango para accederDel arregloElemento.