Латентная типизация

Латентная типизация

Динами́ческая типиза́ция — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры динамически типизированных языков — 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.

Игры ⚽ Нужна курсовая?

Полезное


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

  • Утиная типизация — Латентная, неявная или утиная типизация (калька с англ. Duck typing)  вид динамической типизации, применяемой в некоторых языках программирования (Perl, Smalltalk, Objective C, Python, Ruby, Groovy, ColdFusion, Boo, Java, C#), когда… …   Википедия

  • Латентность — Латентность  от лат. latentis  скрытый, невидимый: свойство объектов или процессов находиться в скрытом состоянии, не проявляя себя явным образом;[1] задержка между стимулом и реакцией: латентный период = инкубационный период = время… …   Википедия

  • Латентный — Латентность от англ. latency : свойство объектов или процессов находиться в скрытом состоянии, не проявляя себя явным образом;[1] задержка между стимулом и реакцией: латентный период = инкубационный период = время между началом действия… …   Википедия

  • Полиморфизм (программирование) — У этого термина существуют и другие значения, см. Полиморфизм. Эта статья или раздел нуждается в переработке. Пожалуйста, улучшите статью …   Википедия

  • Полиморфизм в языках программирования — Полиморфизм (в языках программирования) взаимозаменяемость объектов с одинаковым интерфейсом. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию  например, реализация класса… …   Википедия

  • Полиморфизм типов — Полиморфизм (в языках программирования) взаимозаменяемость объектов с одинаковым интерфейсом. Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию  например, реализация класса… …   Википедия


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

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