Типизация манифеста
Эта статья в значительной степени или полностью опирается на один источник . ( март 2024 г. ) |
Типовые системы |
---|
Общие понятия |
Основные категории |
Второстепенные категории |
В информатике типизация манифеста это явная идентификация программистом типа каждой — объявляемой переменной. Например: если переменная X будет хранить целые числа, ее тип должен быть объявлен как целое число. Термин «типизация манифеста» часто используется вместе с термином « скрытая типизация » для описания разницы между статическим и во время компиляции членством объекта его идентификатором типа во время выполнения .
Напротив, некоторые языки программирования используют неявную типизацию (также называемую выведением типа ), где тип выводится из контекста во время компиляции, или допускают динамическую типизацию, при которой переменная только что объявляется и ей может быть присвоено значение любого типа во время выполнения.
Примеры [ править ]
Рассмотрим следующий пример, написанный на языке программирования C :
#include <stdio.h>
int main(void) {
char s[] = "Test String";
float x = 0.0f;
int y = 0;
printf("Hello, World!\n");
return 0;
}
Переменные s , x и y были объявлены как массив символов, число с плавающей запятой и целое число соответственно. Система типов отклоняет во время компиляции такие ошибки, как попытки сложения s и x . Начиная с C23 , вывод типа можно использовать в C с помощью ключевого слова auto
. [1] Используя эту функцию, предыдущий пример мог бы выглядеть следующим образом:
#include <stdio.h>
int main(void) {
char s[] = "Test String";
// auto s = "Test String"; is instead equivalent to char* s = "Test String";
auto x = 0.0f;
auto y = 0;
printf("Hello, World!\n");
return 0;
}
втором примере, в Standard ML типы Как и во не нужно явно объявлять. Вместо этого тип определяется типом назначенного выражения.
let val s = "Test String"
val x = 0.0
val y = 0
in print "Hello, World!\n"
end
В этой программе нет типов манифеста, но компилятор все равно определяет типы string
, real
и int
для них и отверг бы выражение s+x
как ошибка времени компиляции.
Ссылки [ править ]
- ^ «WG14-N3007: Вывод типа для определений объектов» . open-std.org . 10.06.2022. Архивировано из оригинала 24 декабря 2022 года.
Внешние ссылки [ править ]