Varia em Swift (com exemplos)

Neste artigo, você aprenderá sobre o alcance, seu tipo e casos de uso em Swift.

Um intervalo é um intervalo de valores. Um exemplo simples de intervalo é 0,1,2,3,4,5,6,7,8,9 porque os números são sequenciais de 0 a 9.

Podemos criar alcance rapidamente usando dois operadores de alcance descritos abaixo:

1. Operador de alcance fechado (lowerBound … upperBound)

Inclui todos os valores no intervalo (lowerbound to upperBound). É declarado usando o operador (3 pontos).

Ex: 1… 3 Define intervalo contendo valores 1,2,3

2. Operador de alcance meio aberto (limite inferior …

Inclui todos os valores no intervalo (lowerbound to upperBound), mas exclui o último número (upperBound). Ele é declarado usando o … <operador.

Ex: 1… <3 Define o intervalo contendo os valores 1 e 2

Tipos de intervalo

1. Intervalo fechado (lowerBound … upperBound)

Os intervalos criados com o operador de intervalo fechado são chamados de intervalo fechado. Inclui todos os valores do limite inferior ao limite superior.

Exemplo 1: Impressão de valores de intervalo fechado usando loop for-in

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

Quando você executa o programa, a saída será:

 1 2 3 

O exemplo acima cria um intervalo que contém números de 1 a 3 ( 1… 3). Usamos um loop for-in para ver quais valores o intervalo contém. Para saber mais sobre loops for-in, visite Loops for-in do Swift.

Usando o loop for-in, podemos ver que a faixa fechada contém todos os valores na faixa fornecida, incluindo os valores de limite inferior (1) e superior (3).

2. Alcance parcialmente aberto (limite inferior …

Os intervalos criados com o operador de intervalo meio aberto são chamados de intervalos semiaberto. Inclui todos os valores do limite inferior ao limite superior, mas exclui o valor do limite superior.

Exemplo 2: Impressão de valores de intervalo meio aberto usando loop for-in

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

Quando você executa o programa, a saída será:

 1 2 

No exemplo acima, usamos o loop for-in para ver como funciona o intervalo semi-aberto.

Em vez de imprimir todos os valores, podemos ver claramente que usar o operador semi-aberto imprime apenas 1 e 2 e exclui o valor do limite superior (ou seja, 3).

3. Alcance unilateral

Alcance unilateral são aqueles tipos de alcance que continuam o mais longe possível em uma direção. Ele pode ser criado usando o operador de faixa semi-aberta e o operador de faixa fechada, mas o operador pode ter um valor em apenas um lado.

Exemplo 3: intervalo unilateral inferior a 2

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

Quando você executa o programa, a saída será:

 verdadeiro falso 

O exemplo acima cria um intervalo unilateral usando o operador de intervalo semi-aberto que contém qualquer número menor que dois.

Para validar nosso resultado, usamos o contains método. O containsmétodo simplesmente retorna truese o elemento estiver dentro do intervalo, caso contrário, ele retorna false.

range.contains(-1)verifica se -1 está dentro do intervalo ou não. Visto que seu intervalo unilateral com limite superior 2 e -1 <2, ele fica dentro do intervalo e tem print(range.contains(-1))saída truena tela.

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

  • O início de um intervalo deve ser menor ou igual ao seu final. Em nosso exemplo (lowerBound… upperBound), o valor do limite inferior deve ser menor do que o valor do limite superior. No entanto, pode ser um valor negativo.
    Exemplo:
    3… 1 // erro fatal: Não é possível formar Range com upperBound <lowerBound -3… 1 // Este é um intervalo válido. Limite inferior / limite superior pode conter um valor negativo, mas deve validar a declaração acima.
  • Podemos iterar ao longo do intervalo (excluindo o intervalo unilateral) usando loops for-in.
  • Também podemos usar o operador de alcance para acessar os elementos de uma matriz.

Artigos interessantes...