![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Типы данных со словом type [D7]
p314 © (2006-09-10 21:36:00)1. Читаю в книжке про это, но не понимаю, зачем это может пригодится? Покажите несколько примеров, в которых следует прибегать к этому.
2. Так же интересно узнать, зачем нужно делать вот так, процитирую "Если же переменные A и B принадлежат простым типам данных, то оператор присваивания будет работать":
type
TType1 = Integer;
TType2 = type TType1;
var
A: TType1;
B: TType2;
begin
B := A; // Работает
end.
Какой смысл в этом? Зачем создавать новый тип со словом type от простого типа данных?
Джо (2006-09-10 22:08:00) [1]> Т.е. единственный смысл такой конструкции в том, что бы
> четко различать типы переменных?
В общем, да.
Семантически так:
type
SomeType = Integer; // объявление "синонима" для типа
SomeType = type Integer; // объявление нового типа, у которого будет своя run-time type information.
p314 (2006-09-10 22:02:00) [2]Я проверил, единственное что случилось — это, то что Integer'овая переменная замечательно работает в таком случае. Т.е. единственный смысл такой конструкции в том, что бы четко различать типы переменных?
Zeqfreed (2006-09-10 21:58:00) [3]> [3] p314 (10.09.06 21:52)
> т.е. эффект от TMyType = Integer был бы тот-же.
А проверить?
p314 (2006-09-10 21:52:00) [4]Ну смотрите, взял пример из справки:
type
TMyType = type Integer
procedure p(var t:TMyType);
begin end;
procedure x;
var
m: TMyType;
i: Integer;
begin
p(m); //Works
p(i); //Error! Types of formal and actual must be identical.
end;
Зачем вообще делать TMyType = type Integer, т.е. эффект от TMyType = Integer был бы тот-же.
begin...end (2006-09-10 21:43:00) [5]См. раздел справки Delphi Language Guide -> Data types, variables, and constants -> Declaring types.
Джо (2006-09-10 21:40:00) [6]> Зачем
Чтобы явно отличать один тип от другого, например для регистрации своего редактора свойств.