Você está na página 1de 19

Variáveis e tipos de dados

Tipagem estática e dinâmica

Python para Todos – Evaldo Wolkers


Introdução

Um sistema de tipos é um conjunto de regras que


atribuem uma propriedade chamada de tipo para
várias construções que um programa de computador
é composto (variáveis, expressões, funções ou
módulos).
Uma linguagem de programação pode ser classificada
de acordo com o seu sistema de tipos.
Vou falar sobre linguagem de tipagem estática e
linguagem de tipagem dinâmica.

Python para Todos – Evaldo Wolkers


Introdução

Em uma linguagem de tipagem estática,


verificações de tipo de dados são feitas em tempo
de compilação.
Qual o
meu tipo
Vou de dados?
armazenar
número ou VARIÁVEL
texto?

Python para Todos – Evaldo Wolkers


Introdução

Já em linguagem de tipagem dinâmica, as


verificações são feitas em tempo de execução.

Que legal, vou


armazenar um VARIÁVEL 10.25
número com
decimais

Python para Todos – Evaldo Wolkers


Tipagem estática

Em uma linguagem de tipagem estática é feita uma


verificação dos tipos usados em dados e variáveis para
garantir que se está usando um tipo de dados que é
esperado em todas as situações.
O compilador oferece algumas garantias que alguns
problemas não irão ocorrer após o programa passar
por esta verificação. Os erros são verificados antes do
sistema ser executado. Mas isso não te salva de todos
os erros que podem acontecer.
Python para Todos – Evaldo Wolkers
Tipagem estática

O compilador deve conhecer o tipo de uma variável ou


método antes da execução do programa. O tipo de uma
variável é explicitamente declarado. Uma variável não
pode mudar seu tipo em tempo de execução.
VARIÁVEL DO TIPO INTEIRO “EI, EU SOU UM TEXTO”

ERRO, UMA
VARIÁVEL DO
TIPO INTEIRO
NÃO PODE
ARMAZENAR
TEXTO.

Python para Todos – Evaldo Wolkers


Tipagem estática

Exemplo de linguagens de tipagem estática:


C, C++, Java, C#, Cobol.

Python para Todos – Evaldo Wolkers


Tipagem estática

Exemplo de código Java:


Erros apresentados.

Python para Todos – Evaldo Wolkers


Tipagem dinâmica

Em uma linguagem de tipagem dinâmica, também há


uma verificação, mas somente em cima dos dados, já
que uma variável pode conter qualquer tipo de dado.
É dada ao programador a responsabilidade de realizar
testes para garantir que todos os tipos estão corretos
nos momentos certos.
O tipo de uma variável ou método é desconhecido até a
execução do programa.
Python para Todos – Evaldo Wolkers
Tipagem dinâmica

Exemplo de linguagens de tipagem dinâmica:


Python, Perl, Ruby, PHP, Lisp.

Python para Todos – Evaldo Wolkers


Tipagem dinâmica

Exemplo de código Python:

Python para Todos – Evaldo Wolkers


Tipagem forte

Python é uma linguagem fortemente tipada. Isso quer


dizer que o interpretador do Python avalia as
expressões e não faz coerções automáticas entre tipos
de dados não compatíveis.
O Python não converte automaticamente os tipos de
dados, fazendo com que o resultado seja mais
consistente.

Python para Todos – Evaldo Wolkers


Tipagem forte

Exemplo de código Python:

Python não converte o inteiro para string automaticamente.


Python para Todos – Evaldo Wolkers
Tipagem forte

Mais um exemplo em Python:

TypeError

Python para Todos – Evaldo Wolkers


Tipagem forte

Java também é uma linguagem de tipagem forte:


Tentativa de somar um
inteiro com um
booleano. O Java não
faz conversão.

Python para Todos – Evaldo Wolkers


Tipagem forte

Exemplo de código Java:

O Java trata strings


de forma diferente,
sempre
concatenando.
Pode gerar um
resultado não
esperado.

Python para Todos – Evaldo Wolkers


Tipagem fraca

JavaScript é uma linguagem de tipagem fraca. Isso quer


dizer que o JavaScript faz coerção de tipos ao executar
operações de forma automática.

Python para Todos – Evaldo Wolkers


Tipagem fraca

Exemplo JavaScript:

Python para Todos – Evaldo Wolkers


FIM

Python para Todos – Evaldo Wolkers

Você também pode gostar