
порно 2013 / Мулаточки 18+ / Вопрос 30 - Строгая и нестрогая типизация
.docДля начала рассмотрим основные различия между сильной и слабой типизацией. Прежде всего, слабая (нестрогая)типизация предполагает неявное вычисление/преобразование типов и/или adhocполиморфизм.Таким образом, тип переменной вычисляется на момент выполнения присвоения ей некого значения.
Специальный (или лат. adhoc) полиморфизм допускает специальную реализацию для данных каждого типа. Например, используемая в нашем примере функцией сортировки функция сравнения должна быть определена по-разному для чисел, кортежей, списков, т. е. она является специально полиморфной.
При сильной(строгой) типизации все типы известны заранее, и преобразование проходит по заранее установленным строгим правилам. Строгим, понятно, по отношению к правилам принятым при слабой типизации.
Сильную (строгую) типизацию, представляет язык C#. Если раньше в C++ мы могли написать:
MyObj* m_pObj = GenerateMyObj();
if(!m_pObj)
return -1;
То уже в C# такое преобразование типов не пройдёт, тут будь добр делать все явно:
MyObjm_pObj = GenerateMyObj();
if(m_pObj == null)
return -1;
В этой разновидности типизации для присвоения переменной некоторого значения мы должны сначала объявить эту переменную и задать ей тип. Т.е. основное отличие от слабой типизации в том, что на момент компиляции все типы должны быть известны. Так же, не может быть речи не о каком adhoc полиморфизме. Например, в случае функционального полиморфизма операция сложения, определённая для целочисленных типов, при использовании со строками просто вызовет ошибку компиляции.
У строгой типизации есть одно неоспоримое преимущество, такой код надёжнее. Однако и вслабой есть свои плюсы, язык с такой системой типов более гибкий. В компилируемых языках (С, С++) строгая типизация оказывается удобнее.
Тип данных - характеристика набора данных, которая определяет:
- диапазон возможных значений данных из набора;
- допустимые операции, которые можно выполнять над этими значениями;
- способ хранения этих значений в памяти.
Различают:
- простые типы данных: целые, действительные числа и др.;
- составные типы данных: массивы, файлы и др.