![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
проверка на nil
Scott Storch © (2011-11-28 16:10:00)почему во втором случае проверка возвращает <> nil. разве Assigned(L) не аналогичен L <> nil.
procedure TForm1.Button1Click(Sender: TObject);
var
L: TStringList;
begin
if Assigned(L) then
ShowMessage('= nil')
else
ShowMessage('<> nil');
if L = nil then
ShowMessage('= nil')
else
ShowMessage('<> nil');
end;
Медвежонок Пятачок (2011-11-28 17:03:00) [1]почему во втором случае проверка возвращает <> nil.
Потому что проверяемое не равно нил.
Anatoly Podgoretsky (2011-11-28 16:36:00) [2]> Scott Storch (28.11.2011 16:10:00) [0]
В первом IF очевидная мура написана, абсурд
Ega23 (2011-11-28 16:29:00) [3]
> почему во втором случае проверка возвращает <> nil. разве
> Assigned(L) не аналогичен L <> nil.
Аналогичен. Assigned нужно для процедурных типов, дабы он не "выполнился".
А локальные переменные не инициализируются, да.
RWolf (2011-11-28 16:12:00) [4]локальные переменные не инициализируются компилятором.
RWolf (2011-11-28 16:12:00) [5]и да, в первом if ветки перепутаны.