Um momento
Aula 22
Cursos / Aprenda Go / Golang (Curso de Programação)
While Loop Infinito na Linguagem Go - Curiosidade com time.Sleep (Aula de Golang)

Summary

# Aula de Golang: Loop Infinito e Overflow

Nesta aula de Golang, abordamos um exemplo opcional relacionado ao loop `while` e o fenômeno de overflow em uma variável. A aula se concentra em como visualizar o incremento de uma variável dentro de um loop infinito.

## Principais Pontos

1. **Uso do Pacote `time`**:
   - Importamos o pacote `time` para usar a função `sleep`.
   - Esta função faz com que o programa "durma" por um determinado número de segundos. Utilizamos isso para pausar o loop.

2. **Incremento e Overflow**:
   - A variável `soma` é incrementada a cada iteração do loop.
   - Quando `soma` atinge o valor máximo de um inteiro, ocorre o overflow, fazendo com que o valor revire para zero.
   - Utilizamos `time.Sleep` com um argumento de 100 milissegundos (0.1 segundos) para controlar a velocidade de impressão do valor da variável `soma`.

3. **Execução do Programa**:
   - Ao executar o programa, observamos como os valores da variável `soma` aumentam rapidamente até atingir o overflow e, em seguida, se tornam zero.
   - O loop infinito continua até que o programa é interrompido manualmente (por exemplo, com Control + C).

## Exemplos

No exemplo, ao executar `go run while_loop.go`, observamos:
- A sequência crescente de valores (ex: 4, 8, 16, 32, etc.) até ocorrer o overflow.
- Após o overflow, a variável `soma` se torna continuamente zero.

## Conclusão

Esta aula serve para demonstrar a curiosidade e o funcionamento do loop infinito em Golang, além de ilustrar o conceito de overflow em variáveis. A utilização do pacote `time` foi crucial para observar o comportamento do programa.

Até a próxima aula!

Video Transcript

O local pessoal estamos de volta, mais uma aula de golang, essa aqui vai ser uma aula opcional para seguir na aula de wild loop, tá? Da repetição enquanto. É só uma aula de curiosidade, porque na aula anterior do enquanto a gente fez um loop infinito, mas não dá para ver direto assim a variável soma. Enquanto ela se incrementava até atingir um valor de overflow e depois disso se tornava variável com valor zero, ainda dá para ver. Então vou usar aqui um pacote da golang chamada, pacote chamado time, que tem, tá? Vou em porte aqui, time, e tem uma função dentro desse pacote chamada sleep. Essa função é para fazer o programa dormir, né? Para fazer o programa pausar para o certo número de segundos. Vamos usar essa função aqui dentro do loop aqui infinito para poder imprimir o valor da variável e a gente poder ver o valor enquanto é o valor incrementado até atingir aquele valor de overflow e depois o valor se torna zero, zero, zero, zero, zero, é assim por diante, tá? Então aqui dentro do loop, depois de adicionar a soma e dar a imprimir a soma, eu vou dar uma pausa, vamos dizer time, ponto, sleep, a função sleep, não acho que as funções começam aqui de um pacote com a primeira leita maiúscula, tá? E eu vou dar duração como o argumento essa função. A duração pode usar a constante do pacote time, time, ponto, second, que significa um segundo, mas eu não quero um segundo, que vai um pouco devagar, eu quero um décimo de um segundo, então vou usar millisecond, que é um millisecondo, e vou botar 100 vezes milissegundos, que vai dar um décimo de um segundo, então vamos ver o que acontece quando a gente rodar esse programa, tá? Isso é só de gloriosidade, você não precisa lembrar muito dessa coisa, só lembrar que só interessante o loop infinito, tá? Então vamos aqui go, run, while loop, ponto go, 4, 8, olíquio dá, observa. Vou matar o programa, opa, quando eu atingir zero. Então você note aqui o que é que aconteceu, ele aumentou tanto, tanto, tanto, tanto, que deu um valor e ele virou negativo, the overflow, né? E depois disso virou zero, zero, zero, por isso que a gente só via zero, né? Então foi muito rápido esse negócio, então tive que dar aquela pausa com o time, ponto sleep. Então a cada fração, um décimo de um segundo ele ia imprimir a soma, 4, 8, 16, 72, 64, sem pudejante, olha, olha, olha, e ele aumenta muito, muito, sem parar, né? O loop infinito até o overflow e só dá zero, e eu tive que matar o programa, interromper com o control C para poder parar esse loop infinito. Você vê o valor, tá? Então é isso, só de prioriosidade para o valor da soma aumentando, incrementar a mente aqui, tá? Então vou comentar isso, é só de... Vai por essa aula é só e até a próxima.
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: