Нестрогая типизация

Нестрогая типизация

Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры динамически типизированных языков — Python, Руби, Perl, статическая типизация.

В некоторых языках с динамической типизацией стоит проблема сравнения величин, так, например, PHP имеет операторы сравнения «==», «!=» и «===», «!==», где вторая пара операторов сравнивает значения и типы переменных. Оператор «===» даёт true только при полном совпадении, в отличие от «==», который считает верным такое выражение: (1=="1"). Стоит отметить, что это проблема не динамической типизации в целом, а конкретных языков программирования.

Примеры

  • В PHP:
<html><head><title>test</title></head>
<body>
<?php
  $res  = "string1"; echo $res.'<br />';  // выводит "string1"
  $res  = 1;         echo $res.'<br />';  // выводит "1"
  $res += 2;         echo $res.'<br />';  // выводит "3"
  $res .= "string2"; echo $res.'<br />';  // выводит "3string2"
?>
</body>
</html>  
  • В JavaScript:
<html><head><title>test</title></head>
<body>
<script type="text/javascript">
function DoTest(obj) {
  var res = "string1";  alert(res);  // выводит «string1»
      res = 1;          alert(res);  // выводит «1»
      res += 2;         alert(res);  // выводит «3»
      res += 'string2'; alert(res);  // выводит «3string2»
}
</script>
<a href="#" onClick="DoTest()">Click to test</a>
</body></html>

См. также

Ссылки

  • Sitepoint: «Introduction to Static and Dynamic Typing» [1]

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Нестрогая типизация" в других словарях:

  • BASIC — Класс языка: алгоритмическое, процедурное, объектное программирование Появился в: 1963 г. Расширение файлов: .bas Типизация данных: нестрогая Бейсик (от BASIC, сокращение от англ.  …   Википедия

  • JScript — Не следует путать с JavaScript. JScript Семантика: императивный Класс языка: процедурное программирование Тип исполнения: скриптовый Релиз: 9.0 (Март 2011) …   Википедия

  • Objective-C — Класс языка: объектно ориентированный, мультипарадигмальный: рефлексивно ориентированный Появился в: 1986 Автор(ы): Бред Кокс Типизация данных: нестрогая, статическая / динамическая …   Википедия

  • Бейсик Вильнюс — Класс языка: алгоритмическое, процедурное Тип исполнения: Интерпретатор компилирующего типа Появился в: 1985 Расширение файлов: BAS Типизация данных …   Википедия

  • Бейсик — У этого термина существуют и другие значения, см. Бейсик (значения). BASIC Класс языка: алгоритмический, позже процедурный, позже объектно ориентированный Появился в: 1963 Автор(ы): Томас Курц, Джон Кемени Расширение файлов …   Википедия

  • Бэйсик — BASIC Класс языка: алгоритмическое, процедурное, объектное программирование Появился в: 1963 г. Типизация данных: нестрогая Бейсик (BASIC  сокращение от англ. Beginner s All purpose Symbolic Instruction Code  универсальный код символических… …   Википедия

  • Liberty Basic — Класс языка: алгоритмическое, процедурное, объектное программирование Появился в: 1992 Автор(ы): Карл Гандел Релиз: 4.04 (31 июля 2010 г.) Типизация данных: нестрогая …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»