
Набор текста
Все языки программирования можно разделить на две основные группы: статически или динамически типизированные. Несмотря на некоторые исключения, можно следовать простому правилу:
- Скомпилированные языки обычно статически типизированы. В таких языках тип переменной не может быть изменен.
- Интерпретируемые языки - это в основном языки с динамической типизацией. Тип их переменной можно свободно изменять.
Примеры статической и динамической типизации
C ++ (статический):
#include <iostream>
#include <typeinfo>
using namespace std;
int main()
{
int a = 10; // type of 'a' = int
a = 'A'; // type of 'a' = int
cout << "Type of 'a' is: " << typeid(a).name() << endl;
return 0;
}
Вывод: Type of ‘a’ is: i
Первоначальный тип переменной a был int. Тип переменной a не изменился, несмотря на то, что мы присвоили переменной значение другого типа (char). В последующих манипуляциях с этой переменной она будет использоваться как переменная типа int (ее исходный тип).
Python3 (динамический):
#!/usr/bin/python3
a = 10 # type of 'a' = int
a = "A" # type of 'a' = class 'str'
print("Type of 'a' is: ", type(a))
input("Press Enter to exit")
Вывод:
Type of ‘a’ is: <class ‘str’> Press Enter to exit
Тип переменной a был изменен после присвоения ей значения другого типа. В будущем она будет использоваться как переменная типа str, поскольку ее исходный тип int был отброшен.