A uma grande confusão acerca de qual a diferença entre os diferentes denominações a cerca da tipagem, o intuito desde post é deixar mais claro este conteúdo.
Tipagem estática
A tipagem deve estar explicitado qual o tipo de dado para variável e não pode ser alterado, como no caso da linguagem c.
int velocity = 4;
Neste caso você não pode alterar o tipo da variável, você pode criar uma nova variável com um novo tipo de dado e fazer casting para o novo tipo, mas não fazer a variável velocity
receber outro tipo de dado que não seja o dela.
int velocity = 4;
float newVelocity = (float) velocity;
Tipagem dinâmica
Este tipo de tipagem pode ser inferida pela linguagem sem ser escrita de forma explicita o tipo de dado, por exemplo a linguagem php.
$users = 5;
O php já trata a variável com o tipo inteiro sem precisar estar explicito o tipo dela. É possível além disso alterar o valor da variável para outro tipo.
$users = 5;
$users = 'cinco';
Tipagem fraca
Essa se trata quando o tipo do dado não é bem definido, a linguagem pode alterar o tipo por alguma ação, sem intervenção direta do programador, como é o caso da linguagem javascript.
const numberOne = "5"
const numberTwo = 5
console.log(numberOne + numberTwo)
// 55
Neste caso mesmo o dado numberTwo
sendo number ele é convertido para string para que possa fazer a concatenação com a string.
Tipagem forte
Quando na linguagem os tipos estão bem definidos, sendo necessário a alteração do programador para ser convertido a algum tipo de dado especifico, como é o caso da linguagem python
number_one = "5"
number_two = 5
print(number_one + number_two)
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: can only concatenate str (not "int") to str
Como os tipos são bem definidos e a soma entre string e inteiros não é permitida, python lança o erro de que não pode fazer a concatenação desses dados, pedindo que o programador explicite a conversão dos dados. Por exemplo.
number_one = "5"
number_two = 5
print(int(number_one) + number_two)
# 10
Depois da conversão intencional da variável pode ser feita a soma das variáveis sem erro.
Top comments (1)
Python não é de dipagem dinâmica?
dev-to-uploads.s3.amazonaws.com/up...