Difference between revisions of "Var"

From Lazarus wiki
Jump to navigationJump to search
(Fix errors and simplify (invalid doc references still need fixing))
(insert link to declaration)
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{Var}}
 
{{Var}}
  
Var is a [[keyword]] used to mark the section where [[Variable|variables]] and their data [[Type|type]]s are declared. When used for a parameter of a [[Procedure|procedure]] or [[Function|function]] then '''var''' indicates the use of a [[Variable parameter|variable parameter]].
+
The [[Keyword|keyword]] <syntaxhighlight lang="pascal" inline>var</syntaxhighlight> is used to:
+
* start section of [[Variable|variable]] declarations, and
Variables are typically declared at the beginning of a [[program]], [[procedure]], [[function]] or [[Unit|unit]].
+
* declare a formal parameter as penetrating mutable.
  
<syntaxhighlight>var
+
== Variable declaration section ==
  age: integer;</syntaxhighlight>  
+
In a [[Block|block]] the word <syntaxhighlight lang="pascal" inline>var</syntaxhighlight> starts a section of one or more variable [[Declaration|declarations]].
 +
<syntaxhighlight lang="pascal" highlight="1">
 +
var
 +
age: integer;
 +
</syntaxhighlight>
  
If you are planning to use various variables of the same type, they can be grouped so they share the same type definition. The variables must be separated by a [[comma]].
+
Variables bearing the same [[Type|data type]] can be grouped, by separating their respective [[Identifier|identifiers]] by a [[Comma|comma]]:
 +
<syntaxhighlight lang="pascal" highlight="2">
 +
var
 +
firstName, lastName, address: string;
 +
</syntaxhighlight>
  
<syntaxhighlight>var
+
== Variable parameter ==
  FirstName, LastName, address: string;</syntaxhighlight>  
+
The word <syntaxhighlight lang="pascal" inline>var</syntaxhighlight> prior a formal parameter declaration indicates that this [[Variable parameter|parameter is variable]], that means assigning values to it will affect the named parameter at the call site.
 +
<syntaxhighlight lang="pascal" highlight="1">
 +
procedure censor(var xxx: longWord);
 +
begin
 +
if (xxx = $4655434B) or (xxx = $6675636B) then
 +
begin
 +
xxx := $2A2A2A2A;
 +
end;
 +
end;
 +
</syntaxhighlight>
 +
After invoking <syntaxhighlight lang="pascal" inline>procedure censor</syntaxhighlight> the value of the variable that was supplied at the call site (i. e. where the procedure was called) will (possibly) have changed, too.
  
 
== See also ==
 
== See also ==
* [[Local variables]]
+
* [[Const|<syntaxhighlight lang="pascal" inline>const</syntaxhighlight>]]
* [[Global variables]]
 
* [[doc:ref/refse19.html#x49-540004.2|Variable declaration]]
 
* [[doc:ref/refse21.html#x51-560004.4|Thread Variables]]
 
[[category:Pascal]]
 

Latest revision as of 22:14, 4 July 2021

Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) 中文(中国大陆)‎ (zh_CN)

The keyword var is used to:

  • start section of variable declarations, and
  • declare a formal parameter as penetrating mutable.

Variable declaration section

In a block the word var starts a section of one or more variable declarations.

var
	age: integer;

Variables bearing the same data type can be grouped, by separating their respective identifiers by a comma:

var
	firstName, lastName, address: string;

Variable parameter

The word var prior a formal parameter declaration indicates that this parameter is variable, that means assigning values to it will affect the named parameter at the call site.

procedure censor(var xxx: longWord);
begin
	if (xxx = $4655434B) or (xxx = $6675636B) then
	begin
		xxx := $2A2A2A2A;
	end;
end;

After invoking procedure censor the value of the variable that was supplied at the call site (i. e. where the procedure was called) will (possibly) have changed, too.

See also