= (pronounced “equal”) is used to
- compare two (comparable) values for equality,
- constant declarations (including
- type declarations, as well as
- specifying default values for formal parameters in method declarations.
program equalDemo(input, output, stderr); const answer = 42; resourcestring prompt = 'What''s the answer?'; type number = longint; var i: number; begin writeLn(prompt); readLn(i); if not (i = answer) then begin exitCode := 1; end; end.
Be aware of what you compare:
When you compare two references, i.e.
pointer variables, without dereferencing them first, you usually compare two memory addresses, not the actual content at those addresses.
Operator overloading may alter this behavior, though.
For instance the content of
ansistrings can be compared without any special treatment, though internally (transparently) they are realized as pointers.
Unlike other programming languages, the symbol is not used to assign a value, for that the character pair
:= is used.
An exception of this are “initialized variables”, where you specify an initial value inside the
var section alongside your variable declarations:
program initializedVariable(input, output, stderr); var i: longint; response: string = 'Wrong!'; begin writeLn('What''s the answer?'); readLn(i); if i = 42 then begin response := 'Right!'; end; writeLn(response); end.
Also, a comparison always results in a