Name
Var Keyword
Syntax
varName:Type;Name:Type=Expression; ...
Description
The var keyword declares one or more variables. If
you use the var keyword at the unit level, it
declares global variables whose lifetime is that of the entire unit.
If you use the var keyword in a subroutine, you
are declaring local variables whose scope and lifetime are limited to
that
subroutine.
You can also supply an initial value for a global variable, but not for a local variable.
Tips and Tricks
Without an initial value, a global variable is initialized to zero (empty string,
nilpointer, etc.), and a local variable is not initialized.Local variables are not usually initialized, but Delphi ensures that memory-managed variables, such as strings, dynamic arrays,
Variants, and interfaces are properly managed.The
Resultvariable is special. It is initialized by the caller, not the subroutine, and the initial value is not necessarily zero.
Example
unit Debug; interface var FileName: string = 'c:\debug.txt'; procedure Log(const Msg: string); implementation uses SysUtils; procedure Log(const Msg: string); var F: TextFile; TimeStamp: string; begin AssignFile(F, FileName); if FileExists(FileName) then Append(F) else Rewrite(F); try TimeStamp := DateTimeToStr(Now); WriteLn(F, '[', TimeStamp, '] ', Msg); finally CloseFile(F); end; end; end.
See Also
| Const Keyword, Function Keyword, Library Keyword, Procedure Keyword, Program Keyword, Result Variable, Self Variable, ThreadVar Keyword, Unit Keyword |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access