English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste artigo, você aprenderá sobre Range, tipo e casos de uso no Swift.
Range (intervalo) é o intervalo de valores. Um exemplo simples de intervalo é 0,1、2、3、4、5、6、7、8、9porque os números variam de 0 até9são contínuos.
Podemos usar os dois operadores de intervalo descritos abaixo para criar intervalos rapidamente:
Ele inclui todos os valores do intervalo (lowerbound até upperBound). É declarado usando ... (3pontos) operador declara.
Por exemplo: 1...3 Define um intervalo que contém o valor1,2,3o intervalo
Ele inclui todos os valores do intervalo (lowerbound até upperBound), exceto o último (upperBound). É declarado usando o operador ..<.
Por exemplo: 1..<3 definir valores contidos1E2o intervalo
O intervalo criado usando o operador de intervalo fechado é chamado de intervalo fechado. Ele inclui todos os valores entre o limite inferior e o limite superior.
//1... 3definir valores contidos1、2E3o intervalo for value in 1...3 { print(value) }
Ao executar o programa, a saída é:
1 2 3
O exemplo acima cria um intervalo que contém1até3(1...3) para criar um intervalo que contém-para ver o intervalo contido. Usamos um for-para ver quais valores o intervalo contém. Para obter mais informações sobre o loop forpara obter mais informações sobre o loop for, visite-Swift forno loop
Usar for-no loop, podemos ver que o intervalo fechado contém todos os valores dentro do intervalo dado, incluindo o limite inferior (1) e o limite superior (3)。
O intervalo criado usando o operador de intervalo semi-aberto é chamado de intervalo semi-aberto. Ele inclui todos os valores entre o limite inferior e o limite superior, masnão incluio valor limite superior.
// 1..<3 Definir um intervalo que contém valores 1,2 for value in 1..<3 { print(value) }
Ao executar o programa, a saída é:
1 2
No exemplo acima, usamos for-no loop para ver o funcionamento do intervalo semi-aberto.
Não precisamos imprimir todos os valores, podemos claramente ver que o uso do operador de intervalo semi-aberto imprime apenas1E2E não inclui o valor limite superior (ou seja3).
Um intervalo unidirecional é um intervalo que é o mais contínuo possível em uma direção. Pode ser criado usando o operador de intervalo semi-aberto e o operador de intervalo fechado, mas os operadores podem ter valor apenas em um lado.
let range = ..<2 print(range.contains(-1)) print(range.contains(2))
Ao executar o programa, a saída é:
true false
O exemplo acima usa o operador de intervalo semi-aberto para criar um intervalo unidirecional que contém valores menores que2de qualquer número.
Para verificar nossos resultados, usamos o método contains. Se o elemento estiver dentro do intervalo, o contains retorna true, caso contrário, retorna false.
range.contains(-1) verifica -1 Seu limite superior unidirecional é2 e-1 <2Portanto, ele está dentro do intervalo e a instrução print(range.contains(-1)) é impresso no monitor como true.
Mas, devido ao uso do operador de intervalo semi-aberto, o valor limite superior (2) não está incluído no intervalo. Portanto, range.contains(2) retorna false.
let range = 2... print(range.contains(100)) print(range.contains(1))
Ao executar o programa, a saída é:
true false
O exemplo acima usa o operador de intervalo fechado para criar um intervalo unidirecional, que contém desde}}2até maior2de qualquer valor numérico.
range.contains(10) verificar100 está dentro do intervalo. Devido ao intervalo unidirecional e100 maior2por isso, ele está dentro do intervalo e imprime true na tela.
mas, ele tem valor inferior (2) portanto, range.contains(1) retorna false.
O ponto de partida do intervalo deve ser menor ou igual ao ponto final. Em nosso exemplo (lowerBound...upperBound), o valor inferior deve ser menor que o valor superior. No entanto, pode ser negativo.
Por exemplo:
3...1 // Erro: Não é possível usar upperBound < lowerBound para formar Range -3...1 // Este é um intervalo válido. Lowerbound/Upperbound pode conter valores negativos.
Podemos usar for-in loop para percorrer todo o intervalo (não inclui o intervalo unidirecional).
Podemos usar o operador de intervalo para acessarDo ArrayElemento.