Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Sugestão] Desafio: praticando funções e opcional

Existe um problema na função criada pelo instrutor no exercício 1 do Desafio: praticando funções e opcional. Caso seja passado como parâmetro o valor 1 ou um valor negativo, haverá um erro de execução: Swift/arm64-apple-ios-simulator.swiftinterface:19659: Fatal error: Range requires lowerBound <= upperBound

Acredito que daria para incluir uma verificação antes usando if ou o próprio guard.

func primo(_ number: Int) -> Bool {
  guard number >= 2 else {
            return false
        }
   let start = 2
   for i in start..<number {
       if number % i == 0 {
                 return false
             }
   }
   return true
}
primo(1) // false
primo(7) // true
1 resposta
solução!

Olá, Renan, como vai?

Obrigado por compartilhar essa observação com o fórum. O ponto que você levantou é válido e ajuda a tornar o exercício mais correto do ponto de vista técnico. A função original realmente assume apenas valores a partir de 2, e quando recebe 1 ou números negativos, o intervalo criado no for se torna inválido, resultando no erro de execução que você mencionou.

Já ajustei a atividade considerando a sua sugestão para que esse cenário fique coberto no exercício e para evitar confusão de quem está praticando agora. Contribuições como a sua enriquecem bastante o conteúdo.

Se surgir qualquer dúvida ou sugestão, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!