Главная » 2013 » Апрель » 21 » Типы данных(часть 3)
19:14
Типы данных(часть 3)

Всемогущий Variant

Когда на этапе проектирования программы мы не можем четко определить

тип данных определенной переменной, можно воспользоваться очень мощ-

ным типом Variant. Этот тип вводился для поддержки OLE (Object Link and

Embedding, или внедрение и связь объектов, — мы будем рассматривать эту

технологию позже), где используется почти на каждом шагу. Но сейчас мы

можем найти и другое применение этому типу данных. Переменные этого

типа могут принимать любые значения. Вы присваиваете что угодно, а

программа сама определяет ее тип на этапе выполнения. Давайте рассмот-

рим следующий пример.

var

V: Variant;

begin

V:=5;

V:='Это текст';

V :=true;

V :=3.14;

end;

В первой строке содержимое переменной v будет восприниматься как целое

число. Во второй строке как текст. Далее будет логическая переменная, и в

последней строке мы превращаем переменную v в число с плавающей точ-

кой. Таким образом, при выполнении этого кода переменная изменит свой

тип четыре раза, и код выполнится корректно.

Когда программа встречает переменную типа variant, она автоматически

выделяет для нее память в зависимости от хранимого значения. Если значе-

ние не указано, то переменная инициализируется нулевыми значениями.

( Совет )

Старайтесь использовать этот тип только там, где это действительно необхо-

димо. Не надо все переменные объявлять как Variant только потому, что это

можно. Отлаживать такие приложения сложно, и когда вы попытаетесь, напри-

мер, сложить переменную типа Variant, содержащую число, со строкой, мо-

жете получить не тот результат, который ожидали. Поэтому старайтесь указы-

вать реальные типы.

Рассмотрим следующий программный код.

var

V1,V2,V3 : variant;

begin

VI: ='7' ;

V2:='2';

V3:=100;

V1:=V1+V2+V3;

end;

Как вы думаете, какой результат будет в переменной vi? На первый взгляд,

должно быть число 109, если программа попытается сложить все как числа,

или строка "72100", если сложит как строку. А реально будет 172, потому что

сначала будет сложение строк "7" и "2", в результате чего получиться 72, а

потом произойдет сложение чисел 72 и 100.

Просмотров: 1734 | Добавил: AirKas | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
  
     

Вход на сайт

     
     

Информация:

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Статистика