Difference between revisions of "Is"

From Free Pascal wiki
Jump to navigationJump to search
(_two_ occurences of is)
Line 1: Line 1:
 
{{Is}}
 
{{Is}}
  
The [[Reserved word|reserved word]] <syntaxhighlight lang="pascal" enclose="none">is</syntaxhighlight> belongs to [[object-oriented programming]].
+
The [[Reserved word|reserved word]] <syntaxhighlight lang="delphi" enclose="none">is</syntaxhighlight> appears as an
The <syntaxhighlight lang="pascal" enclose="none">is</syntaxhighlight> operator is used to test whether the object is an instance of the specified [[Type|type]] ([[Class|class]] or child class). It takes an object on the left side of the <syntaxhighlight lang="pascal" enclose="none">is</syntaxhighlight> operator and
+
* [[Operator|operator symbol]] in [[object-oriented programming]], or as a
a type on the right side of the operator. The result is the value of [[Boolean|boolean]] indicating whether the object belongs to this type or not.
+
* modifier qualifying [[Procedural variable|routine variable]] (<syntaxhighlight lang="delphi" enclose="none">is nested</syntaxhighlight>).
  
Example:
+
== operator ==
 +
The operator <syntaxhighlight lang="delphi" enclose="none">is</syntaxhighlight> tests, whether an object (first operand) is an instance of a [[Class|class]] or its children.
 +
<syntaxhighlight lang="delphi">fruit is citrusFruit</syntaxhighlight>is equivalent to<syntaxhighlight lang="delphi">fruit.inheritsFrom(citrusFruit)</syntaxhighlight>.
 +
The [[expression]] is [[false and true|<syntaxhighlight lang="pascal" enclose="none">true</syntaxhighlight>]] if and only if <syntaxhighlight lang="pascal" enclose="none">fruit</syntaxhighlight> descends from <syntaxhighlight lang="pascal" enclose="none">citrusFruit</syntaxhighlight>.
  
<syntaxhighlight>
+
== modifier ==
  ...
+
If <syntaxhighlight lang="pascal" enclose="none">{$modeSwitch nestedProcVars+}</syntaxhighlight> or [[Mode iso|<syntaxhighlight lang="pascal" enclose="none">{$mode ISO}</syntaxhighlight>]] routine variables declared with the modifier <syntaxhighlight lang="delphi" enclose="none">is nested</syntaxhighlight> allows those to be assigned to nested routines.
  If fruit is TCitrusFruit then ... // Check if the fruit object belongs to the class of TCitrusFruit
+
Otherwise only global routines' addresses can be assigned to routine variables.
  ...
 
</syntaxhighlight>
 

Revision as of 01:31, 6 May 2019

Deutsch (de) English (en) suomi (fi)

The reserved word is appears as an

operator

The operator is tests, whether an object (first operand) is an instance of a class or its children.

fruit is citrusFruit

is equivalent to

fruit.inheritsFrom(citrusFruit)

.

The expression is true if and only if fruit descends from citrusFruit.

modifier

If {$modeSwitch nestedProcVars+} or {$mode ISO} routine variables declared with the modifier is nested allows those to be assigned to nested routines. Otherwise only global routines' addresses can be assigned to routine variables.