Um momento
Aula 10
Cursos / Aprenda Go / Golang (Curso de Programação)
Inferência de Tipos na Linguagem Go (Com Constantes Numéricas)

Summary

# Inferência de Tipos na Linguagem Go

Nesta aula, o foco é sobre a inferência de tipos na linguagem Go. O instrutor demonstra como a inferência de tipos funciona através de exemplos práticos no código.

## Declaração de Variáveis com Inferência de Tipos

1. **Declaração Inicial:**
   - O instrutor cria um programa chamado `inferência.go`, define o pacote `main`, e importa o pacote `fmt`.
   - Ele declara uma variável `i` do tipo `int`.

   ```go
   var i int
  1. Inferência de Tipo:

    • Em seguida, declara outra variável j utilizando a variável i:
    var j = i
    
    • O tipo da variável j é inferido do tipo de i, ou seja, j também será do tipo int.
    • Para demonstrar isso, ele usa fmt.Printf para exibir o tipo e valor de j, lembrando que, como não foi atribuído um valor inicial, j será zero por padrão.
    fmt.Printf("Tipo: %T, Valor: %v\n", j, j)
    
  2. Comportamento com Constantes Numéricas:

    • O instrutor explica que se ao declarar uma variável não for explicitado um tipo e usar uma constante numérica (e.g., 36), o tipo inferido será int:
    var e = 36
    
    • Se a constante for um número decimal (e.g., 36.87), o tipo inferido será float64.
    var e = 36.87
    
  3. Números Complexos:

    • Ele também aborda números complexos, mostrando que uma expressão como 0.64 + 0.3i fará com que a variável inferida seja do tipo complex128.
    var c = 0.64 + 0.3i
    
  4. Resultados:

    • Os tipos e valores resultantes são impressos, confirmando o comportamento esperado de cada declaração.

Conclusão

A inferência de tipos é uma característica poderosa da linguagem Go, permitindo que variáveis adquiram tipos baseados no contexto em que são atribuídas, facilitando a escrita do código sem a necessidade de especificar tipos explicitamente para cada variável.

Video Transcript

Fala pessoal, na esta aula gostaria de falar mais sobre a inferência de tipos na linguagem Go Então vamos supor que você está declarando a variável aqui, já tem um programa aqui inferência.go que eu criei e já definiu o pacote main, importei o fmt se precisar e a função main aqui, a função principal Vamos supor que eu tenho, por exemplo, um variable, vamos declarar uma variável com a palavra var o nome da variável vai ser i e o tipo vai ser int, vai ser inteiro Agora o que acontece se eu fizer esse cara aqui, se eu fizer var j igual a i Então, qual vai ser o tipo da variável j? Quando você declara uma variável aqui, dessa maneira, sem dizer o tipo dessa variável explicitamente, ele vai inferir que o tipo vai vir da variável aqui ou da expressão do lado direito do sinal de igual, tá certo? Então, isso significa o que? Essa variável j vai ser do tipo que o i é, nesse caso i foi declarado como variável de tipo int então, o j vai ser de tipo int porque o i tem tipo int tá? Para você ver isso, eu vou botar o fmt printf e eu vou mostrar o tipo da variável j com percentual t e olha que o t aqui é em letter maiúsculo e vou dar, imprimir o valor da variável com percentual v e minúsculo, tá? Vamos dar a vírgula para adicionar as variáveis correspondentes, vou usar j para os dois então, o primeiro tipo da variável que você passar nesse caso j vai aparecer e o valor da variável, nesse caso j também vai aparecer lá a note que eu não defini nenhum valor para j, então ele vai usar o valor zero, né? Se lembra que quando você declarar uma variável no go e você não fornece um valor inicial, ele vai inicializar o valor da variável com o valor zero dependendo do tipo nesse caso, o tipo é um inteiro, o valor zero de inteiro é zero, tá? Então, ele vai dizer zero para o valor e a gente espera que o tipo seja o que? Seja o tipo de j seja int devido à inferência de tipos vou salvar aqui, vou lá no terminal e vou dar Google Run aqui, inferência, outro Google, tá? Ah, esqueci de adicionar o t no printf, salvar tá, esqueci de adicionar a quebra de linha, barra n ali então, o tipo é int e o valor é zero como a gente esperava tá bom? Então, essa é a inferência de tipo, agora eu quero falar em outro detalhe da inferência de tipo isso é quando você tem, deixa eu comentar essa cara aqui, vai ser ignorador, que é compilador, se lembra? barra barra vai aumentar, qualquer coisa que tiver à direita da barra barra na mesma linha vai ser ignorado pelo compilador, agora quando você tiver, você estiver declarando variável, por exemplo, vai e e e você não dizer o tipo explicitamente e no lado direito do sinal de igual você tiver uma constante numérica sem tipo o que é um constante numérica sem tipo, é só o número por si próprio, por exemplo, se eu dizer 36 aqui esse cara aqui é uma constante numérica sem tipo, tá? então, o valor de e vai ser o que? que será o valor aqui? esse caso vai ser int, mas você tem que tomar cuidado porque o tipo, essa constante numérica aqui quando for deduzido pela variável aqui, pela declaração e definição da variável, vai mudar de acordo com o contexto que esse cara tiver nesse caso, a gente tem um número sem nenhum ponto, então ele vai ter esse cara como, você está falando de inteiro então essa variável vai ser inteiro, tá? vou dar o mesmo print aqui para você ver e está int, valor 36 agora, se você mudar 36 aqui, e esse 36.87, agora esse cara aqui tem a vírgula ou ponto afrutuante, tá? tem o valor fracionário, decimal aqui, então nesse caso a variável vai ser deduzida como um float 64 o contexto que é diferente, essa constante numérica, tá? embora que por si próprio não tenha um tipo a nova variável vai deduzir o tipo por ser de ponto afrutuante, então float 64 como tipo, valor 36.87 mesmo coisa também acontece, se o valor aqui em vez de ser esse cara, foi um valor a número complexo constante complexa, por exemplo, 0.64 mais 0.3i e a unidade imaginária esse número aqui é um número complexo, parte real é 0.64, parte imaginária é 0.3, vamos ver qual é o tipo e valor agora o dinote que o tipo virou complexo, 128, esse é o tipo para números complexos no go o valor esse cara aqui, 0.64 mais 0.3i, tá? então essa inferência de tipo na linguagem go, pra sua 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: